Inserir nova linha em um arquivo

Boa Tarde Pessoal,

minha duvida é bem simples mas eu nao consegui achar o metodo/Classe adequado para me atender. Eu quero poder gravar em um arquivo .txt na proxima linha vazia, ou seja, toda vez q eu abrir o arquivo ele deve gravar no final dele pra nao substituir o que ja foi gravado. Estou fazendo assim:

 arquivoWriter = new FileWriter(new File("src\br\com\bolao\io\listaboloes.txt"));
            
           writer = new BufferedWriter(arquivoWriter);
                
            writer.write(nomeBolao);

Mas nesse caso ele sempre comeca gravar do inicio do arquivo quando é aberto. Gostaria de saber o recurso correto para gravar no final do arquivo. Obrigado.

A superclasse Writer tem um método chamado append(…) e a BufferedWriter tem um método chamado newLine(…).

Verifique na documentação oficial quais os parâmetros possíveis.

Espero ter ajudado.

Fiz de forma diferente mas funcionou:


arquivoWriter = new FileWriter(new File("src\br\com\bolao\io\listaboloes.txt"));
            writer = new BufferedWriter(arquivoWriter);
            String linha = "";            
            
            writer.write(nomeBolao+"\n\r");
            
            Iterator<String> it = lista().iterator();
            
            while(it.hasNext()){
                               
                    writer.write(it.next()+"\n\r");                 
                   
            }

Usei um iterator pra pegar os arquivos que eu guardo numa lista (Ja havia feito esse metodo,pois preciso dele pra comparar valores iguais)

Dai eu gravo a nova String e em seguida gravo os antigos registros.

Com relacao ao desempenho, nao ha problemas porque esse arquivo vai ter no maximo 10 registros.

Vou usar esse arquivo pra poder recuperar nome de banco de dados (estou usando o db4o).

Abraços!

Opa e ae cara blz…

Olha um exemplo bem simples de escrita em arquivo …

o coloque um path valido.

[code]import java.io.*;

public class EscreveEmArquivo {
public static void main(String[] args) {
escrever(“c:\appl\arquivo.txt”, “Olá Arquivo2”);
}

public static void escrever(String path, String texto) {
	try {
		// O parametro é que indica se deve sobrescrever ou continua no
		// arquivo.
		FileWriter fw = new FileWriter(path, true);
		BufferedWriter conexao = new BufferedWriter(fw);
		conexao.write(texto);
		conexao.newLine();
		conexao.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}[/code]

espero ter ajudado …

vlw

Valeu pela dica, eu nao havia observado esse construtor de FileWriter.

Abraços!

Já faz um tempo, eu fiz essa classe de quebra galho, sempre salva na hora de escrever em arquivos, já vai com javadoc e tudo mais.