![](/img/trans.png)
[英]How to view my Android app created database, via my android app?
[英]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.