У меня есть требование, где мне нужно записать несколько входных потоков во временный файл в Java.У меня есть фрагмент кода ниже для логики.Есть ли лучший способ сделать это эффективным способом?
final String tempZipFileName = "log" + "_" + System.currentTimeMillis();
File tempFile = File.createTempFile(tempZipFileName, "zip");
final FileOutputStream oswriter = new FileOutputStream(tempFile);
for (final InputStream inputStream : readerSuppliers) {
byte[] buffer = new byte[102400];
int bytesRead = 0;
while ((bytesRead = inputStream.read(buffer)) > 0) {
oswriter.write(buffer, 0, bytesRead);
}
buffer = null;
oswriter.write(System.getProperty("line.separator").getBytes());
inputStream.close();
}
У меня есть несколько файлов размером от 45 до 400 МБ, для типичных файлов размером 45 МБ и 360 МБ этот метод занимает около 3 минут.в среднем.Можно ли это еще улучшить?