考慮下面的示例代碼:下載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秒或更短的時間內下載。任何想法是什麼問題在這裏?