RESOLVIDO-Problema com arquivo texto - Sem quebra de linha

é mais ou menos assim:

Tinha uma aplicacao que usa FileWriter para gerar arquivo texto, so que o arquivo gerado não sinha quebra de linha, vinha todo o texto em uma linha só.

O que pode ser isso? codificacao?(tipo ascii unicode?)

Agradeco qualquer ajuda

Venom

Como que tu estás fazendo pra inserir as informações no arquivo? Tp, mostra o código ae.

//Salva o arquivo em disco
public void salvar(){
try {
// Destino do arquivo
File file = new File(“c:/teste.java”);
// Abre o arquivo para escrita se parâmetro true escreve no final
//do arquivo caso contrário substitui
FileWriter fw = new FileWriter(file, false);
// Torna o processo de escrita no arquivo mais eficiente
BufferedWriter bw = new BufferedWriter(fw);

        bw.write(this.getTexto());
        // Joga o conteúdo da memória
        bw.flush();
        // Fecha o arquivo e libera-o
        bw.close();
    } catch (Exception e) {
        e.printStackTrace();
    }   
}

Qual o conteúdo retornado por getTexto()?

ahahhaha, ainda acordado, aff nem aguento de sono.

Este metodo faz parte de um trabalho meu da faculdade que geraria determinada classe java.

ou seja .getTexto retornaria algo como:
“public class Teste{\n
public Teste(){\n
}\n
}”

mas o arquivo gerado, quando aberto pelo NOTEPAD fica assim:
public class Teste{ public Teste(){ } }

Meu último post de hoje… tow indo dormir, rsss

Bom cara, se tu estás usando o “\n” na String não entendo pq as quebras não estão funcionando.

Tp, uma vez eu tava fazendo um exemplo de salvamento de informações num arquivo txt, e usei o seguinte:

   private void writeUserToFile(User user)
     { file.format("%s %s\n", user.getUsername(), user.getPassword()); }

   private void openFile()
     {
      try
        { file = new PrintWriter(new File("users.txt")); }
      catch(FileNotFoundException e)
        {
         System.out.println("Erro na criacao do arquivo.");
         System.exit(1);
        }
     }

Aih não sei mesmo o pq de a tua aplicação não estar funcionando. Tens certeza de que colocaste os “\n” na String?

Ah!!!

Se ainda não funcionar, tenta colocar “\r\n” ao invés de somente o “\n”.

falow

na madruga respondo se de certo

tambem vou dormir

venom

e ae galera!!

tinha o mesmo problema que o seu, resolvi sem mexer no código. Quando abri no notepad no lugar da quebra aparecia um quadrado preto então abri no wordpad. PRONTO!!!

Bem resolvi desse jeito mas com vc pode ser diferente
falow

[quote=venomtotal]é mais ou menos assim:

Tinha uma aplicacao que usa FileWriter para gerar arquivo texto, so que o arquivo gerado não sinha quebra de linha, vinha todo o texto em uma linha só.

O que pode ser isso? codificacao?(tipo ascii unicode?)

Agradeco qualquer ajuda

Venom[/quote]

use a classe PrintWriter e o metodo println da class… se tiver usando o java 5 essa class aceita no construtor File e String.

Ou vc pode adicionar mais um método ai.

[code]

public void salvar(){

            try { 
                   File file = new File("c:/teste.java"); 
                   FileWriter fw = new FileWriter(file, false); 
                   BufferedWriter bw = new BufferedWriter(fw); 

                   bw.write(this.getTexto()); 
                   [b]bw.newLine();[/b]
                   bw.flush(); 
                   bw.close(); 
             } catch (Exception e) { 
                   e.printStackTrace(); 
             } 

}

O método newLine cria uma nova linha, como o próprio nome do método já revela… :slight_smile:

[quote=Yky Mattshawn]Ah!!!

Se ainda não funcionar, tenta colocar “\r\n” ao invés de somente o “\n”.[/quote]

Matou a questão :twisted:

é isto mesmo, resolveu o problema

Pessoa, so atentar que tem que ser nessa sequencia “\r\n”, se botar “\n\r” nao funciona

Valeu mesmo Yky

[quote=venomtotal][quote=Yky Mattshawn]Ah!!!

Se ainda não funcionar, tenta colocar “\r\n” ao invés de somente o “\n”.[/quote]

Matou a questão :twisted:

é isto mesmo, resolveu o problema

Pessoa, so atentar que tem que ser nessa sequencia “\r\n”, se botar “\n\r” nao funciona

Valeu mesmo Yky[/quote]

Vc estava no Windows…

Separador de linha em unix/linux: LF (Line Feed) = ‘\n’ - hexa 0A
Separador de linha em dos/windows: CR+LF (Carriage Return / Line Feed) = ‘\r\n’ - hexa 0D0A
Opcionalmente, arquivos texto tem CTRL-Z no final de arquivo (End Of File).

[quote] Vc estava no Windows…

Separador de linha em unix/linux: LF (Line Feed) = ‘\n’ - hexa 0A
Separador de linha em dos/windows: CR+LF (Carriage Return / Line Feed) = ‘\r\n’ - hexa 0D0A
Opcionalmente, arquivos texto tem CTRL-Z no final de arquivo (End Of File).
[/quote]

Grande Sacada…

muito útil.

[]'s