2017-11-03 1 views
-1

Ich habe versucht, mit einigen Dateien zu arbeiten, aber es geht nie zur nächsten Zeile. Mit "\ r \ n" oder mit bufferedWriter habe ich zuerst nur fileWriter benutzt.Wie NextLine in einem FileWriter und BufferedWriter, in Java?

Wie mache ich eine nextLine()? Diese Dateien werden unter Unix verwendet, ich habe gehört, dass nicht das gleiche Zeichen für die nächste Zeile erkannt wird.

Hier ist, was mein Programm wie folgt aussieht:

try { 

    File tempFile = new File(pathFiles + "tmp.txt"); 
    //System.out.println(tempFile);  //TEST 
    FileWriter fw = new FileWriter(tempFile, true); 
    BufferedWriter bw = new BufferedWriter(fw); 
    Reader fr = new FileReader(fileOriginal); 
    BufferedReader br = new BufferedReader(fr); 

    String line = ""; 
    while ((line = br.readLine()) != null) { 

     for (int i = 0; i < arrayToConvert.size(); i++) { 
      line = line.replace(arrayToConvert.get(i), 
        arrayConverted.get(i)); 
     } 
     //line += "\r\n"; 
     //line += "\u240D"; 
     //System.getProperty("line.separator"); 
     //br.readLine().split("[\\r\\n]+"); 
     //br.write(line); 
     bw.write(line); 
     bw.newLine(); 


     //br.readLine().split("[\\r\\n]+"); 
     //line.split("[\\r\\n]+"); 
    } 

    bw.close(); 
    fw.close(); 
    br.close(); 
    fr.close(); 

Dies ist der Abschnitt, den Sie brauchen. Im Kommentar, was ich schon probiert habe.

Danke für die Hilfe.

+0

'br.newLine()' sollte funktionieren und ist plattformunabhängig, aber sollte der gepufferte Writer nicht schreiben und newline innerhalb der for-Schleife aufgerufen werden? Oder bin ich sehr verwirrt? Ich selbst würde eine PrintWriter 'println (...)' Methode verwenden. –

+0

'bw.newLine()' schreibt ein plattformabhängiges Zeilentrennzeichen, das nicht immer '\ r \ n' sein wird. Ist dir das bewusst? – markspace

+0

Haben Sie den Inhalt der Datei überprüft? Auch nicht sichtbarer Charakter? Eine Datei auf einem OS zu erstellen, um in einem anderen gelesen zu werden, wird nicht benötigt. – AxelH

Antwort

0

Wickeln Sie Ihre BufferedWriter in eine PrintWriter und verwenden Sie die println() Methoden.

PrintWriter pw = new PrintWriter(bw); 

pw.println(line); 
+0

Okay danke, ich werde das versuchen und Feedback geben. – sublimopopo

Verwandte Themen