RESOLVIDO-Problema com arquivo texto - Sem quebra de linha

13 respostas
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

13 Respostas

Y

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

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

Qual o conteúdo retornado por getTexto()?

venomtotal

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

Y

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?

Y

Ah!!!

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

venomtotal

falow

na madruga respondo se de certo

tambem vou dormir

venom

T

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

LPJava

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

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

clodoaldoaleixo

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());
bw.newLine();
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... :)

venomtotal

Yky Mattshawn:
Ah!!!

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

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

jcatino

venomtotal:
Yky Mattshawn:
Ah!!!

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

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

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).

luiscesarinfo

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).

Grande Sacada…

muito útil.

[]'s

Criado 26 de dezembro de 2006
Ultima resposta 29 de mai. de 2008
Respostas 13
Participantes 7