Использование буферизованных потоков создает огромную разницу.
Попробуйте:
for(final File file : files) {
final InputStream in = new BufferedInputStream(new FileInputStream(file));
final OutputStream out = new BufferedOutputStream(new FileOutputStream(new File(...)));
try {
// Process each file and save it to file
}
finally {
try {
in.close();
}
catch (IOException ignored) {}
try {
out.close();
}
catch (IOException ignored) {}
}
}
Обратите внимание, что IOException
s может быть выброшено при закрытии потоковнеобходимо игнорировать, иначе вы потеряете потенциальное начальное исключение.
Другая проблема заключается в том, что оба потока находятся в одном файле, что не работает.Итак, я полагаю, вы используете два разных файла.