Gravar e Ler num Arquivo .txt

Galera,

To com umas duvidas, eu tenho um codigo que importa o java.io

para gravar e ler num arquivo .txt,

import java.io.*;
public class newfile {

public static String Total1;
public static void main(String[] args) throws IOException {

	FileWriter escreve = new FileWriter(new File("c:\\banco.txt"),true);
	FileReader ler = new FileReader("c:\\banco.txt");
	PrintWriter banco = new PrintWriter(escreve,true);
	BufferedReader leitor = new BufferedReader(ler);
	
	banco.println("Primeira Linha");
	banco.println("Segunda Linha");
	banco.println("Terceira Linha");
	

	banco.close();
	
	escreve.close();
			
	
   
    System.out.println(leitor.readLine());
    System.out.println(leitor.readLine());
    System.out.println(leitor.readLine());
    	 
    leitor.close();
    ler.close();	
			
}

}

Gostaria de saber se tem como o meu programa criar automaticamente um arquivo .txt no meu disco e como eu faço para manipular esse arquivo tipo fazer consulta multiplas dentro de um laço???

Grato

Att Atrevido
Programador Trainee…

Sim. No seu código você deveria abrir o arquivo para leitura (criar um FileReader) apenas depois de fechá-lo para escrita.

Sugestão: antes de usar escreve.close(); coloque escreve.flush(); para descarregar o buffer.

Não entendi sua pergunta. Poderia me explicar com outras palavras? O que seriam consultas múltiplas num laço?

Por exemplo se eu cadastra 5 nomes , depois eu entro com um novo nome e faço uma pesquiza se esse novo nome existe nesse arquivo, como se fosse uma consulta a um banco de dados , precisaria de estar dentro de um laço Tipo for, while etc… entendeu???

Grato

Certo.

Para fazer consultas, basta percorrer o arquivo lendo, linha por linha, com o médodo readLine da classe FileReader. Mas se você quiser usar arquivos para guardar dados como um BD sugiro usar XML usando XStream, por exemplo…

nesse caso nao precisa do flush(), pq ao criar a instancia, ele usou o construtor de printWriter q passa um parametro (no caso passou true) de “flushar” automaticamente, dai n precisa por o flush()…

Valeu galera pela força…