[RESOLVIDO] Gravar arquivo texto com várias linhas

5 respostas
D

Olá a todos.

Tenho um vetor de strings, e quero gravá-lo em um arquivo-texto do bloco de notas.
O método tem dois parâmetros. O primeiro é o vetor propriamente dito, e o segundo o arquivo onde será gravado.

O caso é que eu gostaria de gravar cada elemento do vetor numa linha diferente do arquivo. Mas com o código que eu tenho, só estou conseguindo gravar contínuo, um logo em seguida do outro.

Em outras linguagens eu usaria os caracteres LF (Line Feed) e CR (Carriage Return), mas não sei como fazer isso no Java.
O código da rotina que estou usando é o seguinte:

public void gravar(String[] texto, String arquivo){
		try {
			FileWriter gravacao = new FileWriter(arquivo);
			for (int i = 0; i < 8; i++){
                gravacao.write(texto[i]);
			}
			gravacao.close();
		} catch (IOException e) {e.printStackTrace(); }
	}

Como faço para resolver?
Obrigado

5 Respostas

d34d_d3v1l

e se vc mandar gravar um \n ?
será q dá certo?

desculpa… nao sei…
é um chute kkkkkk

davidbuzatto

public void gravar(String[] texto, String arquivo){ try { FileWriter gravacao = new FileWriter(arquivo); for (int i = 0; i < texto.length; i++){ gravacao.write(texto[i] + "\n"); } gravacao.close(); } catch ( IOException e ) { e.printStackTrace(); } }

Se quiser com pulo de linha apenas entre os dados do array, vc pode fazer assim:

public void gravar(String[] texto, String arquivo){ try { FileWriter gravacao = new FileWriter(arquivo); for (int i = 0; i < texto.length; i++){ if ( i != 0) { gravacao.write("\n"); } gravacao.write(texto[i]); } gravacao.close(); } catch ( IOException e ) { e.printStackTrace(); } }

D

David,

Não está dando certo.
Usei o “\n” de todas as formas que vc mostrou, mas ele continua gravando o arquivo todo em uma única linha.
O que pode estar acontecendo?

Andersonrms

Use o BufferedWriter.

public static void gravar(String[] texto, String arquivo){
	try {
		FileWriter gravacao = new FileWriter(arquivo);
		BufferedWriter bf = new BufferedWriter(gravacao);
		for (int i = 0; i < texto.length; i++){
			bf.write(texto[i]);
			bf.newLine();
		}
		bf.flush();
		bf.close();
	} catch ( IOException e ) { e.printStackTrace(); }
}
D

Valeu, Anderson.
Funcionou aqui.

Criado 8 de julho de 2012
Ultima resposta 11 de jul. de 2012
Respostas 5
Participantes 4