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.]
publicstaticvoidsalvaArquivo(StringnomeArquivo,Stringtexto){if(texto!=null&&texto!=""){try{PrintWriterout=newPrintWriter(newFileWriter("Arquivos/"+nomeArquivo));out.write(texto);out.close();}catch(IOExceptionexc){System.out.print("IOException:\n"+exc.toString());JOptionPane.showMessageDialog(null,"Erro ao tentar Salvar o arquivo.","Erro",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 ?
Onixx2
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(inti=0; i <= array.length(); i++){Stringtexto=num1+num2+num3+"\n";
}
eu coloquei assim:
for(inti=0; i <= array.length(); i++){Stringtexto=num1+num2+num3+"\r\n";
}
assim depois de salvo o arquivo txt pula as linhas corretamente.
Fica ae a dica pra quem precisar
obrigado
rogelgarcia
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…
B
bernert
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();
}
}