Java 将文件复制到资产文件夹

Java 将文件复制到资产文件夹,java,android,file,inputstream,android-assets,Java,Android,File,Inputstream,Android Assets,搜索了一个小时后,我没有找到任何解决问题的方法 我想将一个文件从sdcard移动到assets文件夹,并覆盖assets文件夹中的现有文件(两个文件都是sqlite数据库,名称相同,数据略有差异) ?资产文件夹不可写,它只能读取,因此您无法从SD卡复制到资产,是的,您可以从资产复制到SD卡实际上,android.apk文件的行为是只读的,因此该apk文件中的目录结构遵循相同的,所以没有人可以在运行时编写此文件或对其进行更改,这就是为什么您不能在运行时在/asset folder中进行更改。您可以

搜索了一个小时后,我没有找到任何解决问题的方法

我想将一个文件从sdcard移动到assets文件夹,并覆盖assets文件夹中的现有文件(两个文件都是sqlite数据库,名称相同,数据略有差异)


资产文件夹不可写,它只能读取,因此您无法从
SD卡
复制到资产,是的,您可以从资产复制到
SD卡

实际上,android.apk文件的行为是只读的,因此该apk文件中的目录结构遵循相同的,所以没有人可以在运行时编写此文件或对其进行更改,这就是为什么您不能在运行时在
/asset folder
中进行更改。您可以从中读取文件(表示将资产中可用的文件复制到任何
内部存储器
/SD卡
,但不能将其写入任何
内部存储器


它适用于所有内置.apk文件的目录。根据文档。

如果您希望其他应用程序不访问您的数据库,那么您可以做的是

  • 从网站下载数据库。在应用程序目录中创建临时数据库
  • 这将为您提供您现在创建的虚拟数据库的路径,并将其替换为您下载的虚拟数据库

  • 注:具有root访问权限的用户和应用程序仍然能够访问它,在这种情况下,您无法执行任何操作

    您无法在运行时从资产文件夹中删除或添加任何内容。我想从服务器下载sqlite数据库,然后复制到资产文件夹。我如何克服这种情况?您为什么要下载数据库,只需获取结果并使用它们。这就是我在最后的评论中所说的。从Web服务器上的数据库获取最新信息并显示它。我知道这一点,但我的问题不同。+1对于资产文件夹不可写的信息,我会记住这一点:Psorry相同的注释,但我需要解决方案:)我在资产文件夹中有数据库,现在在服务器上也有数据库。我想稍后在服务器上更改数据库,以便用户可以获取最新更新。我如何才能做到这一点?用户将如何获取该数据库?–john smith 7秒前您必须将数据库写入内部存储或SD卡(最好是内部存储)…您能指导我如何操作吗?如果我将数据库写入SD卡或内部内存,如何将该数据库复制到我的应用程序数据库中?好的,只需简单地将创建的数据库放入资产目录,然后,当您的应用程序第一次安装时,将该数据库文件复制到内部存储器/data/data/packagename/databases/中,然后将该数据库文件打开到您的应用程序中,现在当您从web服务器获得更新时,只需将数据更新到位于上述路径的内部存储器中的数据库文件即可。。