Gravação em arquivo

Como eu faço para salvar arquivo em java pulando linhas, eu já fiz uma vez mas não estou conseguindo mais… ex.:
arquivo é algo do tipo

0102030405
0607080910
1112131415

quando eu salvo utilizando java.io.PrintWriter; o arquivo é salvo mas fica assim:

010203040506070809101112131415

sem respeitar as linhas que foram puladas no arquivo original. Como faço para corrigir esse erro ?
segue abaixo o método responsável por gravar o arquivo.]

[code] public static void salvaArquivo(String nomeArquivo, String texto) {
if (texto != null && texto != “”) {
try {
PrintWriter out = new PrintWriter(new FileWriter(“Arquivos/”+nomeArquivo));
out.write(texto);
out.close();
} catch (IOException exc) {
System.out.print(“IOException:\n” + exc.toString());
JOptionPane.showMessageDialog(null,
“Erro ao tentar Salvar o arquivo.”, “Erro”,
JOptionPane.ERROR_MESSAGE);
}
}

}[/code]

Se vc passar no seu texto sendo uma String com a quebra de linha…por exemplo:

salvaArquivo( "teste", "0102030405\n0607080910\n1112131415" );

O \n indica que vai quebrar uma linha…
Seria isso que vc precisa???

Outra coisa…no seu if

if (texto != null && texto != "") { 

Não compara se a String está vazia com o operador != (diferente)…utilize o equals e negue a instrução como abaixo:

if ( texto != null && !"".equals( texto ) ) {   

Espero ter ajudado!!!
Abs

cara, uma dica:

String conteudo; // vai receber tudo o que você quizer salvar por linha conteudo += "\r\n";

Assim ele cria uma linha e salva, cria outra linha e salva ,etc …

abaixo vai um exemplo de uma casse filmes:

[code]try {
FileWriter f = new FileWriter (file, true);

        for(int i = 0; i < filmes.length; i++){
        	if(filmes[i] != null){
        	genero = filmes[i].getGenero();
        	nome = filmes[i].getNome();
        	ano = filmes[i].getAno();
        	locacao = filmes[i].getLocacao();
        	conteudo = locacao +": "+nome+" > "+ genero + " > "+ ano;
        	conteudo += "\r\n";
        	f.write(conteudo);
        	}
        }
        f.close();[/code]

pra gravar arquivos eu faço assim:

public void teste(){
	String teste = "teste";
	       try{   
	          file = new FileWriter("teste.txt", true);   
	          teste += "\n\r";
	          file.write(teste);            
	          file.close();            
	       }    
	       catch(Exception e){  
	          JOptionPane.showMessageDialog(null,"Erro!","Atenção!!!",JOptionPane.ERROR_MESSAGE);  
	       }  
	}	
	

primeiro de tudo obrigado pela colaboração, mas receio que as dicas que vocês me deram não irá funcionar no meu caso por duas razões:

1ºNão tenho controle sobre o que o arquivo conterá, dessa forma não posso incluir nas linhas do arquivo \n \r etc…

2º Esse trecho do programa deverá apenas salvar o texto como ele vem (inclusive pulando as linhas), não irei gravar novas informações informações, assim não tenho a opção de pular a linha entre uma informação e outra, como sugeriu o Allan.

ps.: Acredito que se eu gravasse o arquivo depois abrisse o mesmo e regravasse colocando o \n em cada leitura de linha funcionaria, mas não haveria um jeito mais correto de fazer isso sem gambiarra ?

muito obrigado amigos, eu consegui. Eu não tinha entendido a solução, estava tentando utilizando apenas o \n na hora de salvar a string, depois que utilizei o \r\n juntos na hora de salvar funcionou, foi tipo isso:

em um determinado ponto do código ao invés de escrever

for(int i =0; i <= array.length(); i++){
     String texto = num1 + num2 +num3+"\n";
}

eu coloquei assim:

for(int i =0; i <= array.length(); i++){
     String texto = num1 + num2 +num3+"\r\n";
}

assim depois de salvo o arquivo txt pula as linhas corretamente.
Fica ae a dica pra quem precisar :wink:

obrigado

Só uma observação…

essa solução não funcionaria no linux… porque nele… a quebra de linha é apenas \n

O ideal é usar o método println() do printwriter… ele vai gravar a linha e uma quebra de linha de acordo com o sistema operacional…

Bom dia Psvtec,

Se entendi direito você está querendo gravar um arquivo passando várias Strings em diferentes linhas?
Caso seja isso, utilize o método println() da do PrintWriter.
Segue um exemplo:

public static void gravaArquivo() { try { FileWriter writer = new FileWriter(new File("c:\arquivoDestino.txt")); PrintWriter saida = new PrintWriter(writer); String[] textos = {"Linha 1", "Linha 2", "Linha 3", "Linha 4"}; for (int i = 0 ; i < textos.length ; i++ ) { saida.println(textos[i]); } saida.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } }

Att,

Guilherme Bernert