将文件下载到内部存储 [重复]
Posted
技术标签:
【中文标题】将文件下载到内部存储 [重复]【英文标题】:Download Files To Internal Storage [duplicate] 【发布时间】:2014-05-31 05:44:30 【问题描述】:我的申请遇到了一些问题。
我想下载文件,然后将它们保存到我的应用程序可绘制文件夹中,但由于应用程序是只读的,所以这不是一个选项,我想将下载的文件保存到内部存储中,以便只有我的应用程序可以访问它们. 如果我不能直接将文件下载到内部存储,我可以从下载文件夹中读取然后将其保存到内部存储吗?
无论哪种方式,我都有下载方法,我只需要知道将下载的文件保存在哪里以及如何在运行时访问它并将其持久地存储在内部存储中。
【问题讨论】:
请添加您的代码和您要查找的部分! 【参考方案1】:试试看
_context.getFilesDir();
和
_context.getExternalFilesDir();
【讨论】:
【参考方案2】:/** * 将私有原始资源内容复制到公开可读的 * 文件,以便后者可以与其他应用程序共享。 */
private void copyPrivateRawResourceToPubliclyAccessibleFile() InputStream inputStream = null; FileOutputStream outputStream = null; try inputStream = getResources().openRawResource(R.raw.robot); outputStream = openFileOutput(SHARED_FILE_NAME, Context.MODE_WORLD_READABLE | Context.MODE_APPEND); byte[] buffer = new byte[1024]; int length = 0; try while ((length = inputStream.read(buffer)) > 0) outputStream.write(buffer, 0, length); catch (IOException ioe) /* ignore */ catch (FileNotFoundException fnfe) /* ignore */ finally try inputStream.close(); catch (IOException ioe) /* ignore */ try outputStream.close(); catch (IOException ioe) /* ignore */
【讨论】:
你不明白,我只希望我的应用程序可以访问文件,而不是用户而不是其他应用程序。 @Pavle37 你能检查我的答案吗! 什么是 R.raw.robot?这是您在存储数据的原始文件夹中创建的文件吗?我下载的文件位于 Environment.DIRECTORY_DOWNLOAD 中,我认为如果我只是输入名称,则 outputStream 不会读取它......而且我的文件是图像和声音。 这与提出的问题完全没有关系。 @ChrisStratton 标记为删除以上是关于将文件下载到内部存储 [重复]的主要内容,如果未能解决你的问题,请参考以下文章