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);
}
}
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
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();
}
}