【发布时间】:2021-01-09 16:10:10
【问题描述】:
所以我创建了这个简单的应用程序来询问用户问题(这就像一个真心话大冒险游戏)。 问题保存在 SD-Card > Android > data > [package name] > files 中的 .json 文件中。
但是,我希望通过手动编辑或交换保存问题的 .json 文件来添加或删除这些问题(以便这些新问题随后出现在应用程序中)。
我已经了解应用程序需要在某处调用 getExternalFilesDir() 方法,以便首先创建我可以在设备的文件管理器中找到的目录。但是 - 正如您可能已经猜到的那样 - 当我打开该目录时,“文件”文件夹是空的。 (我知道 .json 文件必须在其中,因为应用程序运行良好!)
现在我的问题是: 有什么方法可以查看和编辑这些 .json 文件吗?我不在乎解决方案是否包括使用 PC 或某些程序。 或者我不应该将问题保存在 .json 文件中,而是保存在 .txt 文件中?还是我应该使用不同的目录来保存我的问题文件??
我希望得到详细的回答,因为我显然是新手。
提前致谢!
P.S.:我可以根据要求提供代码。
编辑:我不想从代码中编辑这些文件,我已经知道该怎么做。我的问题特别是关于是否有可能使用文本编辑器编辑 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);
}
}
这就是我将文件保存到存储器的方式。
【问题讨论】:
-
Android > data > [package name] > files.加油!你是程序员吗?您的意思是:/storage/emulated/0/Android/data/<packagename>/files?是的?那么它与可移动的micro sd卡无关。 -
我无法相信,如果您可以将文件保存到 getExternalFilesDir(null),那么如果您再次使用 getExternalFilesDir(null) 作为读取文件的路径,您以后将无法使用它。每个文件管理器应用程序也可以显示该目录的内容。然后用户就可以用通常的方式打开文件了。
-
@blackapps 我的意思是外部 SDCard 上的目录。它不会在文件管理器中显示 json 文件
-
请告诉该目录的完整路径(就像我一样)。在使用过的设备上运行哪个 Android 版本?正在使用哪个文件管理器应用程序?
-
@blackapps /sdcard/Android/data/alex.com.wow/files/fragenAdvanced.json 如上所述。我使用的是 Android 10。我首先尝试了 Android 中预装的设备管理器。然后我尝试了“File Manager Plus”,并将手机连接到我的 Windows PC 并使用它的资源管理器。您可能知道 Android Studio 附带的“设备文件资源管理器”。那是唯一的资源管理器,我确实在其中看到了那些 json 文件。任何想法为什么? (我从那里复制了上面的路径)
标签: java android json file storage