0

.txt ファイルをバイナリ形式で保存していますが、バイナリ ファイルの最後の行に ÿ という文字がもう 1 つ保存されています。

なぜこれが起こったのですか?私のコードは次のようなものです:

FileOutputStream fout = null;
InputStream fin;
String path="something";
int i = 0;
fout = new FileOutputStream(path);
do {
  i=fin.read();
  fout.write(i);
} while(i != -1);
fout.flush();
fout.close();
4

1 に答える 1

2

それはかなり明白です: あなたが見ている ÿ 文字 (unicode U+00FF) は、ループを終了する直前に書いている -1 です。ここでは使用しないdo ... while()でください。代わりに、より一般的なイディオムを使用してください。

    while ((i = fin.read()) != -1)
        fout.write(i);
于 2012-11-05T10:46:31.830 に答える