Problema ao escrever em arquivo - quebra de linha

Olá pessoal, estou com um probleminha para escrever o texto de um jTextArea em um arquivo do mesmo diretório. Estou usando o código:

[code]//escreve no arquivo o conteúdo da TextArea
String nomeDoArquivo5464631 = diretorioDoArquivoPronto;
String textoQueVaiSerEscrito145525 = jTextArea1.getText();

    OutputStream f4ads6f4 = null;
    try {
        f4ads6f4 = new FileOutputStream(nomeDoArquivo5464631);
    } catch (FileNotFoundException ex) {
        Logger.getLogger(janela1.class.getName()).log(Level.SEVERE, null, ex);
    }

	OutputStreamWriter ad56a4s6d5sd4 = new OutputStreamWriter(f4ads6f4);
	BufferedWriter j8gh4jh6 = new BufferedWriter(ad56a4s6d5sd4);
    try {
        j8gh4jh6.write(textoQueVaiSerEscrito145525);
    } 
    catch (IOException ex) {
        System.out.println("erro ao escrever no arquivo!");
    }
    try {
        j8gh4jh6.close();
    } 
    catch (IOException ex) {
        System.out.println("erro ao fechar o arquivo!");
    }[/code]

Esse código funciona, mas não como deveria. Eu uso ele para salvar o valor da String textoQueVaiSerEscrito145525 no arquivo teste.txt. O valor da String é:

[quote]Call of Juarez: Bound of Blood é a continuação de um jogo de tiro em primeira pessoa baseado nos grandes filmes de faroeste italianos lançados nos anos 70 e 80.

Esta continuação do bem sucedido Call of Juarez (lançado para PC e Xbox 360) você poderá controlar qualquer um dos dois irmãos McCall (protagonistas do primeiro jogo) em uma história que serve de prólogo para o primeiro título da série.

O jogador vai percorrer vários cenários, dos tradicionais estados do sul dos Estados Unidos (como a Georgia) até ruínas astecas no México.[/quote]

Se eu coloco o código para funcionar ele salva no teste.txt isso:

Ou seja, ele não pula a linha e continua escrevendo na debaixo quando ela termina, ele simplesmente vai emendando tudo sem dar as quebras de linha. Queria saber o que tem de errado no meu código e como faço para ele escrever as quebras de linha?

Obrigado

Não tem nada errado com seu codigo não , o problema e que para quebrar linha voce vai ter que inserir o caractere de escape \n , so assim vai aparecer quebras de linhas .

Mas vou ter que colocar no meio do texto? Eu ja tinha tentado o \n mas não tinha dado.

Tem alguma maneira para eu fazer isso automaticamente? É que eu to construindo um editor de textos (tipo notepad) e fica totalmente inviável mandar o usuário digitar \n no final de cada parágrafo.

Cara não tem outra maneira de tu quebrar linha sem ser \n. Tem que funcionar.

Para fazer um teste faça o seguinte

\n \n \t (quebra duas linhas e ainda da um tab.)

Qual o resultado ??

O método println da classe PrintWriter deve ajudar…Assim como a BufferedWriter, a PrintWriter “extends” a Writer.

Você pode percorrer as linhas da JTextArea com JTextArea.getLineCount(), em cada linha usar JTextArea.getLineStartOffset() e getLineEndOffset() para determinar os limites da linha, e em seguida passar esses limites para JTextArea.getText(offset, length) para ler apenas os dados daquela linha específica. Aí, é só gravar a linha no arquivo de destino via BufferedWriter.write() e registrar a quebra de linha via BufferedWriter.newLine().

A propósito, até onde sei o JTextArea sempre guarda internamente quebras de linha como “\n”, no estilo do UNIX. Porém, como a quebra de linha do ambiente Windows é “\r\n”, não adianta simplesmente jogar o texto da JTextArea num arquivo TXT, pois as quebras de linha não estarão corretas. Assim, vai ser necessário substituir de “\n” para “\r\n” todas as quebras “\n” que não sejam precedidas de “\r”.