Alguém pode me ajudar?

Como guardar esses dados em um array, tratando o delimitador.
E podendo acessar a qualquer momento esse array para fazer comparações futuras.

Valeuuuuuu pessoal.

Modelo do Arquivo .txt abaixo:

MARCELO
MARCOS;85;M;;;MARCELA;3;MAITE;FLAVIA;MARCIO
MARCELA;83;F;;;MARCOS;3;MAITE;FLAVIA;MARCIO
JOAO;87;M;;;MARIA;3;JOANA;MARLI;DANIELA

Dê uma olhada no método split, de String.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#split(java.lang.String)

Oi David,

valeu pela dica, mas o que tá pegando mesmo é guardar esses dados em um array, até mesmo por que estou iniciando a programação em Java agora e estou com dúvida na sua implementação.
Abri o arquivo e estou lendo linha a linha mas armazenar isso no array tá complicado, tem como me dar uma ajudinha ? :oops:

De qualquer modo. Valeu pela atenção.

No método split vc passa o separador e ele já lhe retorna o array com os dados separados, então não há muito mais o que ser feito. Tente usar e se precisar de mais algo avise.

David,

Estou com dúvida na resolução de um problema. Tem como você me ajudar na implementação do mesmo? Ainda não terminei, mas gostaria de saber se estou no caminho certo.
A questão é que programo em VB e Delphi, imagina… :roll: e agora estou migrando para Java :). Portanto esse é o motivo que estou com dificulades. Posso te enviar um email?

Se não der não tem problema, mas ficaria satisfeita se desse.

Atenciosamente,
Nanda

Olá!

Não sei se entendi direito seu problema, mas não sei se um array seria a melhor forma de armazenar seus dados… Se vc tem diversas linhas no arquivo, e cada linha tem diversos campos, se for usar isso em um array, teria que fazer algo do tipo:

EXEMPLO:

MARCELA;83;F;;;MARCOS;3;MAITE;FLAVIA;MARCIO
JOAO;87;M;;;MARIA;3;JOANA;MARLI;DANIELA

Vc teria que fazer com que uma linha ficasse na sequência da anterior… ficaria ruim pra saber onde começa e onde termina um registro, certo?! Mesmo que vc usasse os delimitadores para separar as linhas e colocossa cada item da linha em uma posição do vetor…

Pelo que eu entendi também, em cada linha vc representa uma pessoa e algo como os contatos dessa pessoa, é isso?! Então vc tem um inteiro (nas linhas que colei acima o número 3) e depois vc tem esse número de nomes em sequência na linha, como se fossem contatos, sei lá… estou certo!?

Minha idéia é que vc criasse uma classe para representar cada linha… Suponha que vc crie uma classe Pessoa. Não sei se seria esse o nome ideal, mas estou tentando generalizar o problema com base nas informaçòes presentes nas linhas. Vc poderia ter na classe atributos como:
-nome
-Sexo
-Idade

  • Um array de contatos (os outros nomes que aparecem na linha)

Foi o que eu consegui entender do seu arquivo… Posta mais detalhes ai!

Abraço!

Oi Cássio,
valeu pela atenção. Tem como me ajudar nessa?

Preciso saber:

  • Como armazenar dados em um vetor vindo de um arquivo txt?
  • Separar palavras usando o delimitador?

Inicio do Modelo do arquivo: a primeira linha é o nome do rei.

MARCELO
MARCOS;85;M;;;MARCELA;3;MAITE;FLAVIA;MARCIO
MARCELA;83;F;;;MARCOS;3;MAITE;FLAVIA;MARCIO
JOAO;87;M;;;MARIA;3;JOANA;MARLI;DANIELA

Isso é trabalho da faculdade?!
Até agora vc não conseguiu escrever nem uma linha de código? Se sim, posta ai o que vc conseguiu fazer… Complicado fazer tudo isso e te dar pronto, vc não vai aprender nada…

Abraço!

Oi Cássio,

é trabalho sim. É a primeira vez que trabalho com Java e programação orientado á Objeto.

Dê uma olhadinha no início desse código e me dê uma força. Mas sei que está errado, não roda.

public static void AbrirArquivo() throws IOException {

// Abre o arquivo numa variavel Arquivo
InputStream Arquivo = new FileInputStream(“Familia.txt”);

// cria um buffer para acesso mais rapido ao arquivo
InputStreamReader Armazenar = new InputStreamReader(Arquivo);

// Converte bytes em caracteres
BufferedReader br = new BufferedReader(Armazenar);

//Cria uma array para pessoas
ClassePessoa VetPessoas[ ] = new ClassePessoa [20];
String Delimitador = “;”;
String line;
String[] Conteudo;

line=br.readLine();
while( line!= null ) {
for (int i = 0; i<Conteudo.lenght; i++) {
Conteudo = linha.split(Delimitador);
VetPessoas[i].Nome = Conteudo;
VetPessoas[i].Idade = Conteudo;
if( Conteudo == “M”){VetPessoas[i].Sexo =
true, VetPessoas[i].Sexo = false};

}

// Transformar todos as letras minúsculas em maiúsculas
//String novaLinha = line.toUpperCase();

// fechando os objetos de io:
Armazenar.close();
Arquivo.close();
br.close();

}

}

Respondi no outro tópico que vc postou… E não crie tópicos diferentes sobre o mesmo assunto, isso bagunça o fórum!

Abraço!

Oi Cássio,

Valeu!!!

Abraço