我习惯使用InputStream和readLine()方法在Java中下载URL HTML源代码。当页面有很多EOL时,这似乎非常慢。 我目前的下载方法是使用java.nio库。
URL website = new URL("url.tothe.site.com/page.html");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = context.openFileOutput("temp.html",0);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
但是转移到Android后,transferFrom()方法失败了,提供了以下消息:
Caused by: java.lang.IllegalArgumentException: position=0 count=9223372036854775807
at java.nio.FileChannelImpl.transferFrom(FileChannelImpl.java:372)
...
感谢任何帮助。感谢。