Единственная причина, по которой я могу подумать, почему это не сработает, заключается в том, что размер буфера на 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. Это поймало меня во многих случаях - но уже не так:)