我正在尝试使用setRequestProperty(“ Range”,“ bytes =” + startbytes +“-” +
endbytes);给定下载URL来下载文件的一部分。以下代码片段显示了我要执行的操作。
protected String doInBackground(String... aurl) {
int count;
Log.d(TAG,"Entered");
try {
URL url = new URL(aurl[0]);
HttpURLConnection connection =(HttpURLConnection) url.openConnection();
int lengthOfFile = connection.getContentLength();
Log.d(TAG,"Length of file: "+ lengthOfFile);
connection.setRequestProperty("Range", "bytes=" + 0 + "-" + 1000);
问题是,正在引发一个异常,该异常表示“建立连接后无法设置请求属性”。请帮助我解决此问题。
假设您正在使用HTTP进行下载,则需要使用HEAD http动词和RANGE http标头。
HEAD将为您提供文件大小(如果可用),然后RANGE可让您下载字节范围。
有了文件大小后,将其分成大小大致相等的块,并为每个块生成下载线程。完成所有操作后,以正确的顺序写入文件块。
如果您不知道如何使用RANGE标头,这里是另一个SO答案,说明了如何:http://codingdict.com/questions/131429
[编辑]
为了使文件成块,请使用它并开始下载过程,
private void getBytesFromFile(File file) throws IOException {
FileInputStream is = new FileInputStream(file); //videorecorder stores video to file
java.nio.channels.FileChannel fc = is.getChannel();
java.nio.ByteBuffer bb = java.nio.ByteBuffer.allocate(10000);
int chunkCount = 0;
byte[] bytes;
while(fc.read(bb) >= 0){
bb.flip();
//save the part of the file into a chunk
bytes = bb.array();
storeByteArrayToFile(bytes, mRecordingFile + "." + chunkCount);//mRecordingFile is the (String)path to file
chunkCount++;
bb.clear();
}
}
private void storeByteArrayToFile(byte[] bytesToSave, String path) throws IOException {
FileOutputStream fOut = new FileOutputStream(path);
try {
fOut.write(bytesToSave);
}
catch (Exception ex) {
Log.e("ERROR", ex.getMessage());
}
finally {
fOut.close();
}
}
问题内容: 我正在制作一个将从URL下载文件的程序。总会开始下载,但未完成。例如,如果文件大小为3 MB,则程序仅下载文件大小的一半,因此我无法打开下载的文件。但是程序说文件成功下载了。 那么我该如何解决呢?应该使用其他方式下载吗? 问题答案: 您由于 您正在阅读两次,只写一次。 您需要做的是 这是您的完整代码
问题内容: 我正在使用以下Java代码从Internet下载文件: 我想知道是否可以下载文件的一部分。例如,对于5MB的文件,下载最后2MB。 问题答案: 如果服务器支持(并且HTTP 1.1服务器 应支持 ),则可以使用范围请求: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 此外,一次读取一个字符的效率非常低-您
我的python3代码: 它将内容保存在metadat.pdf但那不是pdf的真正内容,它是这个html页面: 任何帮助,我如何才能保存文件的真实内容,而不是这个html?它应该是真正的pdf,当我下载它是jsut这个html页面 更新: 当我使用Python会话时,从服务器的一个NSWER:
我们可以使用公共可下载的url来达到上述目的吗 谢谢
编辑 当我在模拟器中运行这段代码时,代码仍然不能工作-文件没有下载。
我正试图从一个网站下载多个word文档到一个我可以反复浏览的文件夹中。它们托管在sharepoint列表中,我已经能够解析HTML代码来编译这些word文档的所有链接列表。这些链接(单击时)会提示您打开或保存word文档。在这些链接的末尾,还有doc这个词的标题。我已经能够拆分URL字符串,以获得与我的URL列表对齐的word文档的名称列表。我的目标是编写一个循环,遍历所有URL并将所有word文