Ajuda com factory para ler e escrever em um arquivo!

1 resposta
C

Eae pessoal, eu gostaria de criar um "factory" para ler e escrever em um arquivo... Então fiz o seguinte...

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Arquivo {

	private File dicionario;
	private FileWriter fw;
	private BufferedWriter bw;
	private FileReader fr;
	private BufferedReader br;
	
	public Arquivo() throws IOException {
		this.dicionario = new File("dicionario.dat");
		this.fw = new FileWriter(dicionario);
		this.bw = new BufferedWriter(fw);
		this.fr = new FileReader(dicionario);
		this.br = new BufferedReader(fr);
	}
	
	public void escreveArquivo(String conteudo) throws IOException{
		bw.write(conteudo);
		fw.close();
		bw.close();
		
	}
	
	public String leArquivo() throws IOException{
		String conteudo = "";
		String linha = "";
		while( ( linha = br.readLine() ) != null ) {       
		      conteudo += linha;
		      conteudo += "\n";
		}
		fr.close();
		br.close();
		
		return conteudo;
	}	
}

E a classe de teste

import java.io.IOException;

public class TestaArquivo {
	
	public static void main(String[] args) throws IOException{
		Arquivo arquivo = new Arquivo();
		arquivo.escreveArquivo("Joaozinho 30");
		System.out.println(arquivo.leArquivo());
		
	}
}

E o erro (aheuaheuahuehaue)

Exception in thread "main" java.io.IOException: Stream closed at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source) at sun.nio.cs.StreamEncoder.write(Unknown Source) at java.io.OutputStreamWriter.write(Unknown Source) at java.io.BufferedWriter.flushBuffer(Unknown Source) at java.io.BufferedWriter.close(Unknown Source) at Arquivo.escreveArquivo(Arquivo.java:28) at AbreDat.main(AbreDat.java:14)

Alguma luz ?

1 Resposta

C

Achei a resposta ! http://www.guj.com.br/java/268786-ler-e-escrever-arquivo-txt

Como o arquivo é muito pequeno, antes de dar close no BufferedWriter eu deveria usar o método flush()

Criado 21 de abril de 2013
Ultima resposta 21 de abr. de 2013
Respostas 1
Participantes 1