内Android的内部存储器复制文件(Copy files inside Android inter

2019-09-30 05:04发布

我写一个Android应用程序,我需要2个文件复制到该设备的内部存储。 目前,我可以手动运行后,我的应用程序的设备的‘/数据/数据/ [my_package_name] /文件’下拷贝这两个文件夹使用DDMS。 我需要把这两个文件到该文件夹​​(或任何文件夹),而被安装在设备上我的应用程序。 该尖端这里说的“RES /生/”目录中的文件将被部署到该设备,并会通过openRawResource()访问,但它不”吨告诉这些文件将在内部存储器内被放。 为了summerize,我在我的项目文件夹(资产,原材料,其他任何文件夹)两个文件,我需要这两个内置内存复制的路径内。 我怎样才能做到这一点? 我是否需要纳入到我的AndroidManifest.xml中的任何权限?

先感谢您

Answer 1:

没什么大不了。 有这样做的几种方法,也许比这短,虽然。

InputStream is = AssetManager.open("somefile.txt");
File outputFile = new File(getExternalFilesDir(), "somefile.txt");
OutputStream os = new FileOutputStream(outputFile);

//Now copy is to os. I'd recommend using Apache Commons IO
org.apache.commons.io.IOUtils.copy(is, os));

是的,你需要的权限来写入SD卡(WRITE_EXTERNAL_STORAGE)。

更新:
只是为了澄清:什么尖端说的是:

提示:如果您想保存在编译时应用程序中的静态文件,将文件保存在您的项目RES /生/目录。 你可以用openRawResource()打开它,传递R.raw。 资源ID。 此方法返回可用于读取该文件(但不能写入原始文件)一个InputStream。

在资产文件夹中的文件都包含在APK,但这些是只读的,它们永远不会部署到内部或外部存储器。 如果你需要做的,你必须自己做,如上面的例子。



文章来源: Copy files inside Android internal memory