2011-05-03 15 views
8

Chciałbym następujące zostać wydrukowanejava piśmie do pliku tekstowego

test1

test2

test3

test4

Ale nie wydaje się uzyskać tekst do następnej linii.

Proszę o pomoc

import java.io.*; 

public class MainFrame { 
    public static void main(String[] args) { 
     try { 
     BufferedWriter out = new BufferedWriter(new FileWriter("file.txt")); 
      for (int i = 0; i < 4; i++) { 
       out.write("test " + "\n"); 
      } 
      out.close(); 
     } catch (IOException e) {} 
    } 
} 
+13

Należy przyjąć prawidłową odpowiedź, ludzie chcą, aby zdobyć punkty. – MightyPork

Odpowiedz

8

Musisz mieć dwa \n\n mieć pustą linię. Spróbuj

out.write("test " + "\n\n"); 

w Twoim przypadku (z jednym \n), będzie przerwa bieżącą linię i przejść do nowej linii (która jest następna linia), ale pusta linia nie przyjdzie.

znak nowej linii może być uzależniona od platform, więc lepiej, aby nowa linia postać z właściwości systemowe Java używając

public static String newline = System.getProperty("line.separator"); 
+0

out.newLine(); działa również – Squareoot

0

W zależności od tego, co tekst redaktor otwierasz plik i jakie system operacyjny, z którego korzystasz, być może trzeba użyć "\ r \ n" zamiast "\ n".

Spróbuj.

3

Jeśli chcesz wygenerować tekst, prawdopodobnie łatwiej będzie stworzyć PrintWriter na górze tego BufferedWriter i użyć metod w PrintWriter (jak println) do pisania.

33

Spróbuj out.newLine();

Więc byłoby

for (int i = 0; i < 4; i++) { 
    out.write("test " + "\n"); 
    out.newLine(); 
} 

Source (Java API)

+1

perfect it worked, thanks – Ricco

0

Zważywszy masz pusty blok catch, mogłoby się okazać, że jesteś coraz wyjątek i ukrywanie go. Usuń blok catch i dodaj throw IOException do definicji metody, więc jeśli otrzymujesz wyjątek, możesz go zobaczyć.

1

Podana odpowiedź - System.getProperty("line.separator") jest wystarczająco dobre, ale także spróbować out.write("test " + "\r\n"); może pracować jako linia przerwa w jakiś OS jest \r\n i nie \n

Powiązane problemy