0

テキスト ファイルを読み取って、いくつかのロジックに基づいて、ファイルにいくつかの変更を加える必要があります。だから私はファイルを1行ずつ読んでいます

 while ( (temp_string = inputstream.readLine()) != null )
 {
    /*after employing some other logic*/
    outputstream.write(temp_string);
    outputstream.flush();
}

temp_string は文字列であり、inputstream の宣言は次のとおりです。

BufferedReader inputstream  = new BufferedReader(new FileReader(pathtosilentfile)); 

の宣言outputstreamは次のとおりです。

BufferedWriter outputstream = new BufferedWriter(new FileWriter(pathtooutputfile));

しかし、テキストファイル(新しいファイル)に書き込むと、メモ帳++にNULLとして表示されるゴミがたくさんあります。また、書き込んだデータはメモ帳やワードパッドでも問題ないように見えます。これはある種のエンコーディング エラーですか? 理解できません !何がうまくいかないのですか?

4

3 に答える 3

3

1 つには、改行を書かずに行を読んでいるということです。改行/改行は含まれtemp_stringていません。それがあなたが抱えている唯一の問題ではないようですが。

于 2012-06-27T18:38:59.243 に答える
2

何が何であるかを教えていただければ本当に助かりましたoutput_stream-しかし、それは何らかの説明のはずWriterです-おそらくaをOutputStreamWriterラップしてFileStream、適切なエンコーディングを指定します(これはあなた次第だと思います)。

Notepad / Wordpad では問題ないように見えても、Notepad++ では壊れている場合、おそらくエンコーディングの問題ですが、使用するエンコーディングを決定する必要があります。多くの場合、UTF-8 は適切な選択です (ASCII に対してコンパクトで、Unicode 全体をカバーし、広くサポートされています) が、ファイルを読み取る必要があるものによって異なります。

于 2012-06-27T18:37:59.680 に答える
1

先頭の負荷はNULL、ファイルの先頭ではなく途中から書き込みを開始したことを意味します。メモ帳/ワードパッドは単純にこれを無視しますが、ファイルは必要以上に大きくなり、他のファイルに読み込むときに問題が発生する可能性があります.

しかし、outputstreamあなたが書き始める前に、私たちはそれが何であるか、または何が行われたかを知らないので、あなたを助けることはできません.

于 2012-06-27T18:43:43.570 に答える