一些想法:
增加缓冲区大小:也许:
byte[] buffer = new byte[1024 * 1024];
不要经常写输出文件。Java必须在缓冲区的其余部分等待时执行昂贵的I / O操作。折衷方案是,如果要处理小文件,则会浪费一些内存。
使用
BufferedOutputStream:与上述相同的原因。强烈建议在写入非常大的文件时使用BufferedOutputStream。您甚至不必担心在每个循环中进行编写。循环完成后,只需调用buffOut.flush()进行一次写入即可。例:
BufferedOutputStream buffOut = new BufferedOutputStream(new FileOutputStream("costam0.webm")); int bytesRead;while ((bytesRead = input.read(buffer)) != -1){ System.out.println(bytesRead); output.write(buffer, 0, bytesRead);}buffOUt.flush()您在调用println时是否计算了这些计算?不要那样做 您确认该过程有效,只是速度很慢。无需每次都调用println。
另外,您是如何“计算”速度的?



