2014-06-16 26 views
10

Chcę napisać nową linię przy użyciu FileOutputStream; Próbowałem następujące podejścia, ale żaden z nich nie działa:Jak napisać nową linię w Java FileOutputStream

encfileout.write('\n'); 
encfileout.write("\n".getbytes()); 
encfileout.write(System.getProperty("line.separator").getBytes()); 
+0

Definiuj "nie działa". –

+0

to nie jest pisanie nowej linii –

+0

@PavanPatidar: Piszą znak nowej linii. Na pewno. –

Odpowiedz

7

Może to być problem z przeglądarką ... Spróbuj otworzyć plik w EditPlus lub Notepad ++. Notatnik systemu Windows może nie rozpoznać linii w innym systemie operacyjnym. W jakim programie teraz oglądasz plik?

+0

problem rozwiązany, dzięki Teddy .. –

9

To powinno zadziałać. Prawdopodobnie zapomniałeś zadzwonić pod numer encfileout.flush().

Jednak nie jest to preferowany sposób pisania tekstów. Należy owinąć strumień wyjściowy z PrintWriter i cieszyć się jego println() metody:

PrintWriter writer = new PrintWriter(new OutputStreamWriter(encfileout, charset)); 

Alternatywnie można użyć FileWriter zamiast FileOutputStream od początku:

FileWriter fw = new FileWriter("myfile"); 
PrintWriter writer = new PrintWriter(fw); 

Teraz wystarczy zadzwonić

writer.println(); 

I nie zapomnij zadzwonić pod numer flush() i close() po zakończeniu pracy .

+0

Mam nadzieję, że nie masz nic przeciwko dodaniu brakującego parametru zestawu znaków. –

+0

@ ChristofferHammarström, bardzo dziękuję za poprawkę. – AlexR

+0

Dzięki, ale to nie szukam .. –