【问题标题】:Saving Android App Data in phone在手机中保存 Android 应用程序数据
【发布时间】:2016-12-15 23:53:52
【问题描述】:

我无法从我的应用中查看数据。我基本上正在运行一个应用程序,并希望将数据保存在文本文件中。我的保存代码是:

try {
       FileOutputStream  out = openFileOutput(FILENAME, Context.MODE_APPEND); 
       out.write (entry.getBytes());
       out.close();
       } catch (Exception e) {
         e.printStackTrace();
       }

entry 是包含我要保存的数据的字符串。该应用程序运行良好,我可以查看日志中的数据。问题是我在 Android 设备管理器 -> 文件管理器 -> 数据中找不到该文件。当我单击数据时,它应该向我显示包,但它是空的。我想保存数据并在以后使用它进行处理。有人可以帮忙吗? TIA :)

Edit1:修改为写入外部存储。但是,这只是写了一个条目,并没有写更多。

FileOutputStream outputstream;
          try {
              file1 = new File(Environment.getExternalStorageDirectory(), "MyData");
              outputstream = new FileOutputStream(file1);
              OutputStreamWriter oswriter = new OutputStreamWriter(outputstream);
              BufferedWriter bwriter = new BufferedWriter (oswriter);
              bwriter.write(entry);
              bwriter.newLine();
              bwriter.close();
              outputstream.close();
             } catch (Exception e) {
                        e.printStackTrace();
                    }

【问题讨论】:

  • 您是否尝试过使用 FileInputStream 从文件中读取并检查它?
  • @CommonsWare我猜是对的,因为它在内部存储中,所以你需要root,你实际上已经写入文件,只是尝试读取它。
  • 谢谢二凡。我认为这是导致这种情况的内部存储节省。有没有其他方法可以在不root手机的情况下查看数据?
  • 我想这可能会帮助你提取文件,虽然我自己没有这样做:developer.android.com/studio/profile/ddms.html
  • yw @KDK,我希望我能帮助你,但 Mark(Commonsware) 比我优秀得多 :) 顺便说一句,关于 MODE_APPEND,你可能想重新考虑使用它,尝试研究其他写入文件的mod,并选择合适的写入数据。

标签: android android-studio save fileoutputstream


【解决方案1】:

您要保存到的位置可能只能由您的应用访问。见docs。来自文档:

内部存储:

  • 它始终可用。

  • 此处保存的文件只能由您的应用访问。

  • 当用户卸载您的应用时,系统会从内部存储中删除您应用的所有文件。

文件不会显示在文件资源管理器中。您仍然可以在您的应用中阅读它。

【讨论】:

  • 感谢您的帮助。我想这就是我看不到数据的原因。
【解决方案2】:

我的猜测是您正在设备上进行测试。您不能在生产硬件上任意访问/data/,除非在有根设备上。在模拟器上进行测试或使用adb shell run-as 从命令行访问您应用的internal storage 部分。

【讨论】:

  • 感谢您的及时回复。我在一个真实的设备上测试它并且它没有植根。所以,我认为这是问题所在。有没有办法将“adb shell run-as”合并到应用程序本身中,以便我可以在任何地方的手机上运行它?
  • @KDK:不,这没有多大意义。欢迎您在应用程序中构建备份工具,将数据复制到可访问的external storage
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多