problem ze znakiem nowej linii podczas zapisu do pliku txt

0

Witam stworzyłem program który pozwala na automatyczne łączenie kilku wierszy w jeden - zawartość wyświetlana jest w jTextArea a każdy wiersz zakończony jest '\n' czyli zankiem nowej linii i problem jest następujący w środowisku linuxa wszystko działa poprawnie ale windows nie rozpoznaje tego '\n' i wywala prostokącik nie przenosząc tekstu do nowej linii:

JFileChooser chooser = new JFileChooser();
            chooser.showSaveDialog(chooser);
            String filename = chooser.getSelectedFile().getPath();
            w = new OutputStreamWriter(new FileOutputStream(filename +".txt"),jTextField1.getText());
            System.out.println(w.getEncoding());
            w.write(jTextArea1.getText());

przedstawiłem sposób w jaki zapisuje do pliku w jTextField1 pozwalam sobie zmieniać stronę kodową, ale niezależnie czy wybrana jest cp1250 czy utf8 w windowsie plik wynikowy się krzaczy.
próbowałem już konwersji do tablicy znaków binarnych, zapisywałem poprzez różne klasy(FileWriter, File) i nadal nic nie wiem gdzie tkwi błąd.

0

Zamiast na pale dodoawac \n dodawaj File.separator

0

Pod windą masz \n\r pod u'xami \n

0

@pikseloza, chyba głupoty piszesz, File.separator, to "oddzielacz" katalogów: "\" w windowsach
"/" w linuksie.

0

jeśli chcesz mieć uniwersalny program to zamiast "\n" piszesz System.getProperties("line.separator")

0

Racja, glupoty pisze. Oczywiscie powinno byc System.getProperty("line.separator").
Sorki.

0

Na żadną uniwersalność podczas zapisywania plików tekstowych nie można liczyć. Nie wiemy jaki będzie system (i jaki program zostanie użyty do otwarcia) na komputerze otwierającym plik.

0

Podczas odczytywania mozna uzyc BufferedReader i metody readLine(). Zgodnie z API:
"Reads a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed."

0

Dzięki za pomoc, System.getProperty("line.separator") pomogło, ale dopiero po rekompilacji w środowisku Windowsa (a myślałem że system operacyjny nie ma wpływu na działanie maszyny wirtualnej javy), a programik używany będzie tylko pod Windowsem

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