【发布时间】:2014-04-29 21:06:53
【问题描述】:
我正在尝试提交一个 500 MB 的文件。 我可以加载它,但我想提高性能。 这是慢代码:
File dest = getDestinationFile(source, destination);
if(dest == null) return false;
in = new BufferedInputStream(new FileInputStream(source));
out = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buffer = new byte[1024 * 20];
int i = 0;
// this while loop is very slow
while((i = in.read(buffer)) != -1){
out.write(buffer, 0, i); //<-- SLOW HERE
out.flush();
}
我怎样才能找到它慢的原因?
字节数组大小/缓冲区大小不够吗?
您有什么提高性能的想法吗?
提前感谢您的帮助
【问题讨论】:
-
我会将
out.flush()移到循环之外,但无论如何代码对我来说看起来还不错......你叫什么“慢”?
标签: java file-upload file-io inputstream large-files