Zapisywanie pliku .txt - nowa linia

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ć?

0

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

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

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

Wszystko śmiga, dzięki :)

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