2011-11-04 7 views
12

Użyłem poniższego kodu, aby zapisać rekord do pliku. Rekord może być zapisany w pliku, ale jest dołączyć w jednej linii, za każdym razem, kiedy nazywają ten przykład metoda:Java FileWriter, jak pisać do następnej linii

Witam WorldHello WorldHello WorldHello Świat

jak można zmodyfikować kod tak wygląd wyjście jak poniżej, tak, że po przeczytaniu tekstu mogę użyć line.hasNextLine() do sprawdzenia?

Hello World
Hello World
Hello World
Hello World

 // Create file 
     FileWriter fstream = new FileWriter(fileName, true); 
     BufferedWriter out = new BufferedWriter(fstream); 
     out.write(c.toString()); 
     //Close the output stream 
     out.close(); 

     // Code I used to read record I am using | as a seperator name and id 
     String fileName = folderPath + "listCatalogue.txt"; 
     String line = ""; 
     Scanner scanner; 
     String name, id; 
     scanner = new Scanner(fileName); 
     System.out.println(scanner.hasNextLine()); 
     while (scanner.hasNextLine()) { 
      line = scanner.nextLine(); 
      System.out.println(line); 
      StringTokenizer st = new StringTokenizer(line, "|"); 
      name = st.nextToken(); 
      id = st.nextToken(); 
      catalogues.add(new Catalogue(name, id)); 
     } 

Odpowiedz

16
out.write(c.toString()); 
out.newLine(); 

tutaj jest proste rozwiązanie, mam nadzieję, że to działa

EDIT: używałem „\ n "co oczywiście nie było zalecane, zmodyfikowana odpowiedź.

+14

Proszę nie używać "\ n" separatory linii będą się różnić na podstawie platform – Kris

+0

Dzięki to działa. – user236501

52

Nie jestem pewien, czy rozumiem poprawnie, ale czy to masz na myśli?

out.write("this is line 1"); 
out.newLine(); 
out.write("this is line 2"); 
out.newLine(); 
... 
+4

To powinna być zaakceptowana odpowiedź. – wassup

-1

.newLine() jest najlepsza, jeśli line.separator nieruchomość system jest właściwy. i czasami nie chcesz zmieniać środowiska wykonawczego właściwości. Więc alternatywne rozwiązanie dołącza \ n