考虑下面的示例代码:下载Java中的文件 - 很慢
somefile = new URL("http://somefile.rar");
ReadableByteChannel rbc = Channels.newChannel(somefile.openStream());
FileOutputStream fos = new FileOutputStream("test");
long start = System.currentTimeMillis();
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
long end = System.currentTimeMillis();
System.out.println(end-start);
问题中的文件是14MB。当我使用上面的代码下载它时,每次需要26-30秒。我注意到,从java下载它时,有些时期根本没有传输字节。当我从例如浏览器下载相同的文件时,它会在4秒或更短的时间内下载。任何想法是什么问题在这里?