Tag: 下载输入

如何杀死BufferedInputStream .read()调用

我正在编写一个程序来从服务器下载非常大的文件(~2GB)。 我编写了程序以便能够恢复部分完成的下载, 为了模拟一个糟糕的互联网连接,我一直在下载中途时将我的以太网线从我的路由器中拉出来。 不幸的是,这导致我的程序挂起以下调用: while((bytesRead = in.read(data)) > 0) (其中bytesRead是int,in是从HttpURLConnection构建的BufferedInputStream,数据是字节数组)。 我试图通过在另一个线程上调用in.close()来“中断”调用,但是在恢复互联网连接之前它没有任何效果(此时会抛出exception)。 有什么方法可以阻止被切断的互联网连接冻结我的程序吗?

Android:“意外的流结束”exception下载大文件

我正在构建一个Android应用程序,我需要从一个大小为33 MB的URL下载一个文件。 这里的下载任务: try { int MAX_BUFFER_SIZE = 4096; URL mUrl = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) mUrl.openConnection(); connection.setRequestMethod(“GET”); long length = connection.getContentLength(), downloaded = 0; int read; byte [] buffer = new byte[(((int)length) > MAX_BUFFER_SIZE) ? MAX_BUFFER_SIZE : (int)length]; String filename = getFilename(mUrl); File file = new File (SDCARD_ROOT); if (!file.exists() || !file.isDirectory()){ […]