android - 删除应用时读取持久性数据
问题描述
我想在文件中写入和读取数据。
我已经搜索并找到了这两种完美运行的方法..
public void writeToFile(String data,Context context) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("config.txt", Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
public String readFromFile(Context context) {
String ret = "";
try {
InputStream inputStream = context.openFileInput("config.txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
但是当我从我的 android 设备中删除应用程序时,这个文件正在被删除。
如果用户删除了应用程序,是否有任何方法可以保存和检索数据?
解决方案
你不能。删除应用程序时,会删除其本地存储中的文件。
但是,您可以将文件保存在外部目录中。这样,当用户删除应用程序时,它们不会被删除。你可以在这里阅读更多关于它的信息。
推荐阅读
- apache-spark - pyspark:删除具有独占子集的重复项
- ruby-on-rails - 从 has_many 更改为 has_one 关系 rails
- c# - JWT Token 访问 AuthenticatedUser
- r - 由“.print_helper_for_environment(val, all.names, count_depth + 1)”引起的高 Cstack 使用率
- api-platform.com - API 平台,执行 POST 时出错。尽管发送了数据,但断言触发器
- firebase - 是否可以/建议跳过来自 firebase authStateChanges()-Stream 的第二次调用?
- php - 如何在电报机器人中创建“选择组”命令?
- azure - 如何使用 AZURE KQL 编写查询以获取自定义输出作为结果?
- python - Pandas groupby 返回总和和最新日期
- google-apps-script - 创建一个对话框以在 Google 表格应用程序脚本中捕获预订详细信息