我的申请遇到了一些问题。
我想下载这些文件,然后将它们保存到我的应用程序可绘制文件夹中,但由于应用程序是只读的,所以这不是一个选项,我想将下载的文件保存到内部存储中,以便只有我的应用程序可以访问它们。
如果我不能直接将文件下载到内部存储,我可以从下载文件夹中读取然后将其保存到内部存储吗?
无论哪种方式,我都有下载方法,我只需要知道将下载的文件保存在哪里以及如何在运行时访问它并将其持久地存储在内部存储中。
我的申请遇到了一些问题。
我想下载这些文件,然后将它们保存到我的应用程序可绘制文件夹中,但由于应用程序是只读的,所以这不是一个选项,我想将下载的文件保存到内部存储中,以便只有我的应用程序可以访问它们。
如果我不能直接将文件下载到内部存储,我可以从下载文件夹中读取然后将其保存到内部存储吗?
无论哪种方式,我都有下载方法,我只需要知道将下载的文件保存在哪里以及如何在运行时访问它并将其持久地存储在内部存储中。
试试看
_context.getFilesDir();
和
_context.getExternalFilesDir();
/** * 将私有原始资源内容复制到公开可读的文件中,以便后者可以与其他应用程序共享。*/
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 */ } } }