Zapisywanie pliku .txt - nowa linia

Odpowiedz Nowy wątek
2011-09-01 22:38
0

Witam, postanowiłem sobie napisać prościutki notatnik. Wszystko ładnie pięknie gdyby nie jedna rzecz a mianowicie przechodzenie do nowej linii przy zapisywaniu. Kiedy w polu JTextArea wpisuje na przykład:

Jan
Kowalski

to do pliku nie zapisują się dwa wyrazy, każdy w nowym wierszu, tylko wszystko przechodzi w jeden łańcuch - JanKowalski. Domyślam się, że metoda getText() pobiera wszystko jako jeden ciąg ignorując przejścia do nowego wiersza. Jak to rozwiązać?

Pozostało 580 znaków

2011-09-01 22:46
0

Pokaż kod, którym zapisujesz do pliku, bo metoda getText nie działa tak jak się domyślasz.


Pozostało 580 znaków

2011-09-01 23:54
0
int opcje = zapisz.showSaveDialog(zapiszJako);
                if(opcje == JFileChooser.APPROVE_OPTION){
                    try{
                    BufferedWriter zapis = new BufferedWriter(new FileWriter(zapisz.getSelectedFile().getPath()));
                    zapis.write(pole.getText());
                    zapis.close();
                    } catch (IOException e){
 
                    }
                } 
edytowany 1x, ostatnio: madmike, 2011-09-02 18:35

Pozostało 580 znaków

2011-09-02 01:57

Zamiast

zapis.write(pole.getText());

daj zapis.write(pole.getText().replaceAll("\n", System.getProperty("line.separator")));


Chodzi o to, że w JTextArea znakiem nowej linii jest LF ("\n"), natomiast w systemie windows nową linię oznacza sekwencja znaków CR LF ("\r\n") dlatego windowsowy notatnik sobie z tym nie poradził(Notepad++ już tak).
System.getProperty("line.separator") zwraca separator linii w zależności od systemu(ot, żeby dobrze Ci to śmigało zarówno na windzie, linuchu czy OS X).

edytowany 2x, ostatnio: byku_guzio, 2011-09-02 01:59

Pozostało 580 znaków

2011-09-02 10:36
0

Wszystko śmiga, dzięki :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0