Importar Arquivo txt e armazenar em um vetor

Olá, preciso de ajuda para manipular os dados de um arquivo txt, a função do exercício é primeiro importar os dados que estão organizados em colunas, depois armazena-los num vetor e por último organiza-los usando quicksort, para o quicksort eu tenho um algoritmo para seguir e depois transformar em java, mas não estou conseguindo as primeiras etapas que é armazenar td num vetor, o código está assim:


public class Principal {

	public static void main(String[] args) 
	{
		
		try{ //começa tratamento de excessão
			
			String arquivo = "/home//EstDados/dados.txt";  //as barras estão assim pq uso linux
						
			StringBuffer conteudo = new StringBuffer(""); //armazena cada caractere do arquivo
			
			
			FileInputStream fi = new FileInputStream(arquivo); //cria um objeto que define o 
			//arquivo que vai ler ----->  fi
			
			int c; //vai receber o byte do arquivo
			
			while ((c = fi.read()) != -1) //o -1 indica o fim do arquivo
				//o read está trabalhando com byte, então pode importar qualquer extenção de 
				//arquivo, até mesmo com imagem
			{
				conteudo.append((char) c);
				/*String nomeAbrev = conteudo.substring(0, 5);
				String nomeInt   = conteudo.substring(7, 46);
				String end       = conteudo.substring(47, 107);
				String cidade    = conteudo.substring(108, 123);
				String ddd       = conteudo.substring(124, 132);
				String tel       = conteudo.substring(133, 145);
				
				System.out.println("Conteudo do Arquivo:\n" + nomeAbrev 
															+ nomeInt 
															+ end
															+ cidade
															+ ddd
															+ tel);	*/				
				
			}
			
			System.out.println("Conteudo do Arquivo:\n" + conteudo);
			fi.close();	
		} 
		catch (FileNotFoundException e1)
		{ 
			System.out.println("Não achou o arquivo arquivo");
		}
		catch (Exception e2)  //Exceção caso não funcione
		{
			System.out.println("Erro no tratamento do arquivo");
		}
		
	}
	
}

Da forma que está, eu imprimo apenas a variável conteudo que apresenta o arquivo inteiro, mas a parte comentada é a forma que estou tentando armazenar cada dado no vetor.

Eu sei que a lógica não está orientada a objeto, esse é outro desafio, eu acho que deveria ter uma classe para definir o arquivo, outra para fazer as ações que teria o main e uma para o tratamento de excessão, mas não consegui por em prática essa idéia, se alguém puder ajudar agradeço

Att Penny

Você não precisa criar uma classe para cada ação.

Basta você criar uma classe para armazenar os dados lidos do arquivo. Ex:

public Pessoa{ private String nomeInt; private String end; private String cidade; private String ddd; private String tel; }

Essa classe você vai usar para armazenar os dados lidos. Use os metódos crie os metódos get e set dos atributos.
a cada leitura no arquivo você vai preencher um novo objeto pessoa e inserir no arquivo.

Lembre-se sempre que for criar uma aplicação crie uma classe por Entidade e um metódo por ação.

Ex: Classes: Pessoa,Veiculo,Telefone
Métodos: Andar;Falar;Ligar;Telefonar

obrigada Luciano@@, vou seguir sua orientação para separar td em classes e métodos, mas de qualquer forma, o que eu não consigo é armazenar os dados individualmente no vetor

:oops:

Você pode usar um List. A cada leitura no arquivo você instancia um objeto pessoa, preenche e adiciona no list.

Depois de ler todo o arquivo você vai criar o array com o tamanho da lista e adcionar os itens da lista no array.

Ex:

[code]

List list = new ArrayList();
Pessoa p;
while(){
p = new pessoa();
list.add§;
}

Pessoa pessoas[] = new Pessoa[list.size()];

for(int i = 0; i < list.size(); i++){
pessoas[i] = list.get(i);
}[/code]

no final pessoas sera um Array de objetos Pessoa