繁体   English   中英

如何查看和编辑由我的 Android 应用程序创建和使用的文件?

[英]How to view and edit files that were created and are used by my Android app?

所以我创建了这个简单的应用程序,它会询问用户问题(就像是一个真实或大胆的游戏)。 问题保存在 SD-Card > Android > data > [package name] > files 中的 .json 文件中。

但是,我希望通过手动编辑或交换保存问题的 .json 文件来添加或删除这些问题(以便这些新问题随后出现在应用程序中)。

我已经知道应用程序需要在某处调用 getExternalFilesDir() 方法,以便首先创建我可以在设备的文件管理器中找到的目录。 但是 - 正如您可能已经猜到的 - 当我打开该目录时,“文件”文件夹是空的。 (我知道 .json 文件必须在那里,因为应用程序运行良好!)

现在我的问题是:有什么方法可以查看和编辑这些 .json 文件? 我不在乎解决方案是否包括使用 PC 或某些程序。 或者我不应该将问题保存在 .json 文件中,而是保存在 .txt 文件中? 还是应该使用不同的目录来保存我的问题文件?

我希望得到详细的答案,因为我显然是新手。

提前致谢!

PS:我可以根据要求包含代码。

编辑:我不想从代码中编辑这些文件,我已经知道怎么做。 我的问题特别是关于是否有可能使用文本编辑器编辑 json 文件或使用复制粘贴交换文件。

代码:

 public void copy() {
    Context Context = getApplicationContext();
    String DestinationFile = Context.getExternalFilesDir(null).getPath() + File.separator + "fragenAdvanced.json";
    
    if (!new File(DestinationFile).exists()) {
        try {
            CopyFromAssetsToStorage(Context, "fragenAdvanced.json", DestinationFile);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

private void CopyFromAssetsToStorage(Context Context, String SourceFile, String DestinationFile) throws IOException {
    InputStream IS = Context.getAssets().open(SourceFile);
    OutputStream OS = new FileOutputStream(DestinationFile);
    CopyStream(IS, OS);
    OS.flush();
    OS.close();
    IS.close();
}
private void CopyStream(InputStream Input, OutputStream Output) throws IOException { //brauche ich das?
    byte[] buffer = new byte[5120];
    int length = Input.read(buffer);
    while (length > 0) {
        Output.write(buffer, 0, length);
        length = Input.read(buffer);
    }
}

这就是我将文件保存到存储的方式。

有 3 种方法可以保存您的用户数据,但您的方式并不安全,因为用户可以访问它。

  • 第一种方法是将用户数据保存在 SharedPreferences 中,使用起来非常简单,但是如果用户清除应用程序捕获,数据将被删除(您可以将您的 json 转换为字符串并将其保存在 sharedPreferences 中,以便将字符串转换为 json 您可以使用 Gson 库)

  • 第二种方式是使用SQlite,将数据保存在本地数据库中,会被clear stroge删除,对于重要数据还是不行

  • 最后一种方法是使用远程数据库并从api获取数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM