java – 使用Androids DownloadManager从Parcel文件描述符返回输入流

前端之家收集整理的这篇文章主要介绍了java – 使用Androids DownloadManager从Parcel文件描述符返回输入流前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 android DownloadManager下载文件,访问该文件,并将其写入新的位置(在本例中,我正在下载一个编译服务器端的数据库,需要写入/ database /目录).

我一直在阅读并管理下载该文件,并激活BroadcastReceiver,但在这一点上我被卡住了.

我已经返回了ParcelFileDecriptor文件,但我无法以任何方式将其转换为流.我不能决定ParcelFileDecriptor.AutoCloseInputStream是否是一个红色的鲱鱼,但我很确定ParcelFileDecriptor有一个流的相对性,但我真的很努力地处理它.任何帮助将不胜感激.

解决方法

我在发布后工作了约5分钟,现在觉得很愚蠢.无论如何,假设您已经开始下载并设置了广播报告器,以下代码将执行此工作…
ParcelFileDescriptor file = dMgr.openDownloadedFile(downloadId);
            File dbFile = getDatabasePath(Roads.DATABASE_NAME);

            InputStream fileStream = new FileInputStream(file.getFileDescriptor());
            OutputStream newDatabase = new FileOutputStream(dbFile);

            byte[] buffer = new byte[1024];
            int length;

            while((length = fileStream.read(buffer)) > 0)
            {
                newDatabase.write(buffer,length);
            }

            newDatabase.flush();
            fileStream.close();
            newDatabase.close();

如果您正在寻找更多关于使用自己的检查覆盖数据库的信息,那么这个链接(以上信息来自大多数):

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

猜你在找的Android相关文章