【问题标题】:Overwriting content of textfile in assets folder in Android project覆盖Android项目资产文件夹中文本文件的内容
【发布时间】:2014-11-30 08:35:37
【问题描述】:

我的 Android 项目的 assets 文件夹中有一个名为 counter.txt 的文件。在运行时我想覆盖文件的内容。但这不是反映。我该如何解决这个问题?

我使用了下面的代码。

String FILENAME = "counter.txt";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

【问题讨论】:

    标签: android android-assets


    【解决方案1】:

    据我所知,write/update 不能在 assets 文件夹中。你唯一能做的就是read

    【讨论】:

    • 那么有没有其他方法可以在android中存储和更新数据.....我尝试使用共享首选项并且我成功存储了我的数据但是当我选择“清除数据”表单时应用程序设置,保存的数据正在被删除。所以我厌倦了使用资产文件夹中的文本文件进行存储,你回答说不可能,所以有替代解决方案???
    • 如果您清除数据,它将清除您所有的应用程序数据。您可以在 SDCard 上写入文件。
    • 我想存储机密数据并将其存储在 SDCard 上是有风险的,因为它是可移动媒体。我也尝试禁用“清除数据”按钮,但它也没有发生。你能帮我解决吗??
    • SDCard 不安全,您可以在写入文件之前加密您的数据,但是您将无法限制用户删除您的文件。
    【解决方案2】:

    更准确地说,您不能在运行时通过代码对“asset”文件夹进行任何更改,但是在编译代码并获取APK文件后,您可以将其解压缩,更改“ assets'文件夹并再次将所有文件压缩到APK。

    但是,您必须重新签署 APK 文件才能使其正常工作。

    【讨论】:

      【解决方案3】:

      我认为在这种情况下您应该使用类 SQLiteDatabase 来存储所有机密但​​经常更新的计数器。

      【讨论】:

        猜你喜欢
        • 2020-09-18
        • 1970-01-01
        • 2021-04-11
        • 1970-01-01
        • 2013-11-27
        • 2012-07-13
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        相关资源
        最近更新 更多