2017-11-03 31 views
-1

私はいくつかのファイルで作業しようとしていますが、次の行には絶対に行きません。 "\ r \ n"またはbufferedWriterを使用すると、最初はfileWriterのみを使用しました。JavaのFileWriterとBufferedWriterでnextLineを実行する方法は?

どうすればnextLine()を作成できますか?これらのファイルはUnix上で使用されますが、次の行に移動したときに認識された文字と同じ文字ではないと聞きました。ここで

は私のプログラムは、次のようになります。

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(); 

これはあなたが必要とする部分です。コメントでは、私はすでに何を試みた。

ありがとうございました。

+0

'br.newLine()'は動作し、プラットフォームに依存しませんが、バッファ付きライターの書き込みと改行はforループ内で呼び出されるべきではありませんか?または私は大きく混乱していますか?私自身、PrintWriterの 'println(...)'メソッドを使用したいと思います。 –

+0

'bw.newLine()'は、プラットフォーム依存の改行記号を書いています。必ずしも '\ r \ n 'になるとは限りません。あなたはそれを認識していますか? – markspace

+0

ファイルの内容を確認しましたか?見えないキャラクター? OS上でファイルをビルドして別のファイルに読み込む必要はありません – AxelH

答えて

0

PrintWriterBufferedWriterをラップし、println()の方法を使用してください。

PrintWriter pw = new PrintWriter(bw); 

pw.println(line); 
+0

申し訳ありませんが、これを試してフィードバックをお寄せください。 – sublimopopo

関連する問題