如何在Android中获取文件流?(下载管理器)

如何在Android中获取文件流?(下载管理器),android,file-io,Android,File Io,我正在做一个类似于下载管理器的项目 其中一个功能是允许用户暂停文件,以便稍后继续下载。我用谷歌搜索了一下,但不幸的是还没有解决这个问题(也许我是android新手,解决这个问题很愚蠢) 问题是。。。如果其中一个文件尚未完成下载,如何获取文件的当前流/大小?我怎样才能继续写这个文件呢 我在java中看到了如下代码: begin = downloaded; file = (FileConnection) Connector.open("\sdcard\abc.mp3"); OutputStream

我正在做一个类似于下载管理器的项目

其中一个功能是允许用户暂停文件,以便稍后继续下载。我用谷歌搜索了一下,但不幸的是还没有解决这个问题(也许我是android新手,解决这个问题很愚蠢)

问题是。。。如果其中一个文件尚未完成下载,如何获取文件的当前流/大小?我怎样才能继续写这个文件呢

我在java中看到了如下代码:

begin = downloaded;
file = (FileConnection) Connector.open("\sdcard\abc.mp3");
OutputStream output = file.openOutputStream(begin);
DataOutputStream dos = new DataOutputStream(output);
if(read != -1) {
dos.write(buffer, 0, read);
dos.flush();
    downloaded += read;
}
但我真的不明白它在android中是如何工作的:( 非常感谢您的回复

我很抱歉我的英语不好,希望你们能理解我在说什么。 多谢各位


关于这个问题,你可以参考我的答案


它谈到了部分下载和恢复下载。希望能有所帮助。

嗨,naikus,谢谢你的回复。恢复下载已经完成。但是如果文件下载了一半,应用程序关闭了呢?我如何继续从一半开始写文件?因为当应用程序重新启动时,所有活动都应该重新启动对吗?我不是应该获得文件大小/流,然后使用“outputstream.write(buffer,downloadedStream,end);”这个方法吗?谢谢。你可以将“正在”下载的文件命名为“name.part”和一个相应的文本文件filename.url(用于存储下载url),例如bigfile.tar.part。当你的应用程序启动时,检查是否有“.part”下载目录中的文件。若要继续下载,请将.part文件的长度获取为“len”,从URL文件获取URL,执行“range=len(字节)-500(字节)”,使用http头中的“range”,然后可以使用RandomAccessFile(“rw”)查找(范围)并开始写入。