-2

Javaプログラムでは、テキストを1行ずつ文字列変数にコピーしています。

次に、Files.newBufferedWriterを使用して、そのデータを2番目のテキストファイルに書き込みます(ここでもテキストは1行ずつ取得されます)。

何らかの理由で、2番目のファイルの特定の行番号と列番号で書き込みが停止します-書き込むテキストの行数がさらに多い場合でも。行#で書き込みが行われているというメッセージをログに出力しようとしましたが、メッセージは行#892を超えて行#1098まで続きますが、データは2番目のファイルの行#892までしか書き込まれません。

AFAIK BufferedWriterは大きなファイルにデータを書き込むことができます-それでは、なぜこれが私のプログラムで起こっているのですか?

参考までに、データの書き込みを示すコードスニペットを以下に示します-

BufferedWriter writer;
     if(outputmode.equalsIgnoreCase("append"))
        writer = Files.newBufferedWriter(path_target, ENCODING,  StandardOpenOption.APPEND);
else if(outputmode.equalsIgnoreCase("overwrite"))
    writer = Files.newBufferedWriter(path_target, ENCODING,  StandardOpenOption.CREATE);

そして、ファイルへの実際のコード書き込みテキスト(文字列変数 "currentline")は次のようになります-

    writer.write(currentline);
    writer.newLine();

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

flushすべてのコンテンツをファイルに書き込むには、バッファリングされたライターが必要になる場合があります。

于 2013-01-13T06:54:58.497 に答える