私はこれがうまくいかないと思う唯一の理由は、USBのバッファーサイズがディスクよりも大きく、出力ストリームバッファを適切にフラッシュしていない(または入力ファイルを適切に閉じていない)ということです。
あなたがフラッシュすると閉じ書くとき、および読み取り時に開いている他のファイル参照がないことを確認していることを確認するためにあなたのIOコードを確認してください:
OutputSteam os = null;
try {
os = new BufferedOutputStream(new FileOutputStream(folder,"content.txt"));
writeEncryptedFile(os); // do your file writing here
} catch (Exception e) {
e.printStackTrace(); // whatever your error logging is here.
} finally {
if (os != null) {
// MUST ALWAYS FLUSH BEFORE CLOSING OUTPUTSTREAM
try { os.flush(); } catch (Exception e) {}
try { os.close(); } catch (Exception e) {}
}
}
また - あなたの入力を閉じていることを確認してくださいfinallyブロックにもファイルがあります。これは多くの機会に私を捕まえました - それ以上はありません:)
ファイルは適切に閉じられているので、バッファーサイズから来る可能性があります。 どうすれば修正できますか?バッファーサイズは私のコードなので同じです。 – user512684
close()の前にflush()を呼び出し、バッファが問題にならないようにしてください。 – Chris