Gravação de .txt

8 respostas
ateubh

Estou tentando gravar um arquivo .txt na raiz do meu pc (so: windows), mas quando passo a string, o programa grava tudo na mesma linha e onde estão os ‘\n’ ele coloca um quadradinho… o que faço?

public void gravaPrograma( String pPrograma ) {
        FileWriter lWriter;
        PrintWriter lSaida;
        File lFile = new File("c:\\teste.txt");
        
        try {
            lWriter = new FileWriter( lFile );
            lSaida = new PrintWriter( lWriter );
            lSaida.print( pPrograma );           
            lSaida.close();
            lWriter.close();
            //Runtime.getRuntime().exec( "c:\\Transf_Arq.ebx" );
        }catch( IOException ioe ) {
            JOptionPane.showMessageDialog( null, "Erro de I/O", "AVISO", JOptionPane.ERROR_MESSAGE );
            ioe.printStackTrace();
        }
    }

obrigado

8 Respostas

rodolfodev

Tive esse problema tb por muito tempo, isso é porque dependendo do S.O. a quebra pode ser diferente usa [System.getProperty(“line.separator”)] que pega a quebra de linha do S.O.

Leozin

use println

thiago.correa

Para escrever em arquivo? Como?! Eu sabia da solução que o Rodolfo sugeriu!

Leozin

é o que diz na API

não testei vou testar agora

Leozin

Não precisa reinventar a roda

Há soluções simples que a gente de vez em quando nem percebe hehehe

eu mesmo não sabia da solução de vocês (essa do getProperty), mas bem, creio que ambas dêem certo, então, eu fiz essa aqui e pelo menos funcionou bem legal:

import java.io.*;

public class TestingPrintWriter {

	public static void main(String[] args) throws Exception {

		PrintWriter writer = new PrintWriter( new File( "C:\\arquivo.txt") );
		writer.println( "oiiii" );
		writer.println( "oiiii" );
		writer.close();

	}

}

gg :)

thiago.correa

Eu não sabia dessa API. Vou passar a usá-la!
Vivendo e aprendendo.

renatosilva

O \n imprime ASCII 13, é o que basta no Linux por exemplo mas no Windows tem que ser \n\u0010, o getProperty aí retorna o adequaldo de acordo com o SO…

ateubh

println só funciona se vc mandar linha a linha para o arquivo. Se você mandar uma string completa, ele coloca um quadradinho aonde estiverem os enter’s

Criado 5 de abril de 2006
Ultima resposta 6 de abr. de 2006
Respostas 8
Participantes 5