Duvidas em leitura de arquivo TXT

Boa noite, estou com uma duvida sobre como fazer para ler informações de um arquivo TXT e passar os valores para objetos a medida que cada linha do arquivo for lida.

ex: Eu tenho uma Classe produtos (bem ainda não foi toda definida), essa classe tem que receber apenas o nome do produto e o preço do arquivo TXT.

bem na minha classe do form tem o seguinte bloco:

BufferedReader entrada = new BufferedReader(new FileReader(arquivo)); String s; while ((s = entrada.readLine())!= null){ ListaCestaBasica.add(s); }

O ListaCestaBasica é um jList que coloquei apenas como teste…

oque eu quero é que para cada linha do arquivo lida, possa ser pego o nome do produto e o preço e automaticamente crie um novo objeto da classe produtos para cada linha do arquivo lida até chegar no final do arquivo…

Como posso fazer isso???

Desde já muito obrigado!

Use StringTokenizer, e organize um separador padrao para cada linha do arquivo. Digamos que cada produto tenha um nome simples, nao separados por espacos, e um valor de preco escrito como 1.00 para 1 real, voce poderia utilizar StringTokenizers com um separador " ", que separa a linha em tokens, onde os espacos são os delimitadores,

ex.: arquvo tem escrito
laranja 2.00
biscoito 1.25
feijao 0.99

o programa:
BufferedReader entrada = new BufferedReader(new FileReader(arquivo));
String s;
while ((s = entrada.readLine())!= null){
StringTokenizer tokens = new StringTokenizes(s);
String nome = s.nextToken();
double preco = Double.parseDouble(s.nextToken())
Produto produto = new Produto(nome, preco);
ListaCestaBasica.add(produto);
}

Aqui, o programa le cada linha do arquivo, separa por tokens (no caso 2 tokens), e atribui cada token a uma variavel, cria um Objeto Produto e adiciona à lista

Caso o nome do produto contenha espacos, tipo “suco de laranja”, utilize outro delimitador, como “$”, e coloque no arquvio: suco de laranja $1.00, entao crie um new StringTokenizer(s, “$”);

Valeu

Valeu Cara!

fiz do jeito que vc falou…
Na parte do seu codigo:

StringTokenizer tokens = new StringTokenizes(s, "$"); String nome = s.nextToken();

desse jeito não funcionou…

eu mudei para

String nome = token.nextToken(); 

foi isso que vc quiz dizer, não?

Muito obrigado cara! valeu mesmo!!!

Se voce digitar em uma linha: suco de laranja 1.00
Se voce separar em tokens com linha = new StringTokenizer(palavraLida) o delimitador vai ser os espacos (" "), ai seria o seguinte:

token1 = linha.nextToken(); // token1 = suco
token2 = linha.nextToken(); // token2 = de
token3 = linha.nextToken(); // token3 = laranja
token4 = linha.nextToken(); // token4 = 1.00

Ficaria dificil depois ter que ver se os tpkens separaou as palavras, e ter que juntar de novo etc.

Se voce digitar em uma linha do arquivo: suco de laranja $1.00 e separar com linha = new StringTokenizer(palavraLida, “$”), ocorreria o seguinte:

token1 = linha.nextToken(); // token1 = suco de laranja (o espaco entre laranja e $ é incluido aqui)
token2 = linha.nextToken(); // token2 = 1.00

Então não precisaria juntar depois os tokens, ja estaria dividido legal.
Mas ai depende do que você quiser fazer entende

Valeu()