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

Java 如何查看和编辑我的Android应用程序创建和使用的文件?,java,android,json,file,storage,Java,Android,Json,File,Storage,因此,我创建了一个简单的应用程序,可以向用户提问(就像是一个真理或挑战的游戏)。 这些问题保存在SD卡>Android>数据>[软件包名称]>文件中的.json文件中 但是,我想通过手动编辑或交换保存问题的.json文件(以便这些新问题随后出现在应用程序中)来添加或删除这些问题 我已经了解到应用程序需要在某个地方调用getExternalFileDir()方法,以便首先创建我可以在设备的文件管理器中找到的目录。然而,正如你可能猜到的,当我打开那个目录时,“文件”文件夹是空的。(我知道.json文

因此,我创建了一个简单的应用程序,可以向用户提问(就像是一个真理或挑战的游戏)。 这些问题保存在SD卡>Android>数据>[软件包名称]>文件中的.json文件中

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

我已经了解到应用程序需要在某个地方调用getExternalFileDir()方法,以便首先创建我可以在设备的文件管理器中找到的目录。然而,正如你可能猜到的,当我打开那个目录时,“文件”文件夹是空的。(我知道.json文件一定在那里,因为应用程序工作正常!)

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

我希望能得到详细的答复,因为我显然是新来的

提前谢谢

备注:我可以根据要求提供代码

编辑:我不想从代码中编辑那些文件,我已经知道怎么做了。我的问题是,是否有可能使用文本编辑器编辑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种方法可以保存用户数据,但您的方法不安全,因为用户可以访问它

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

  • 第二种方法是使用SQlite并将数据保存在本地数据库中,它将被清除,对于重要数据仍然不好

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


谢谢你,但你理解我错了。我希望用户能够访问这些文件。我的问题是,我-用户-无法找到和编辑这些文件,当我想这样做。当然,这种方式不安全,但这不是我的意图
Android>data>[package name]>文件。
来吧!你是程序员吗?你的意思是:
/storage/simulated/0/Android/data//files
?对我不能相信,如果你能将一个文件保存到getExternalFilesDir(null),那么如果你再次使用getExternalFilesDir(null)作为读取文件的路径,你以后就不能使用它了。每个文件管理器应用程序也可以显示该目录的内容。然后用户可以用通常的方式打开文件。@blackapps我指的是外部SD卡上的目录。它不显示文件管理器中的json文件请告诉该目录的完整路径(就像我所做的那样)。哪个安卓版本在旧设备上运行?正在使用哪个文件管理器应用程序?@blackapps/sdcard/Android/data/alex.com.wow/files/fragenAdvanced.json,如上所述。我使用安卓10。我首先尝试了安卓系统中预装的设备管理器。然后我尝试了“File Manager Plus”,我还将手机连接到我的Windows PC并使用它的浏览器。您可能知道Android Studio附带的“设备文件浏览器”。这是唯一一个浏览器,在那里我可以看到那些json文件。你知道为什么吗?(我从那里复制了上面的路径)