【问题标题】:Accessing Data Saved to Internal Storage on Android Device访问保存到 Android 设备内部存储的数据
【发布时间】:2016-07-27 20:44:20
【问题描述】:

我是 Android Studio 新手,已经学习了大量教程。我有一个可以工作的加速度计,想将数据保存到 .csv 文件中。 我下面的代码有效,因为当我使用模拟器时,我能够将带有正确数据的 .csv 文件导出到我的桌面并打开它。我的AndroidManifest.xml 有这两个权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

当我使用 Astro 或 ES 等应用程序进入设备上的文件资源管理器并转到 data/data/ 时,即使该应用程序在我的手机上运行,​​我什至看不到我的包。您需要做些什么才能让包显示在文件资源管理器中吗?我想从手机中的 .csv 中获取数据。

我希望有人能参与进来

String Entry = x.getText().toString() + ", "
        + y.getText().toString() + ", " +
        z.getText().toString() + "\n";
try{
    FileOutputStream outPut = openFileOutput(FILENAME, Context.MODE_APPEND);
    outPut.write(Entry.getBytes());
    outPut.close();
}catch(Exception err){
    err.printStackTrace();
}

编辑

String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
        String FILENAME = "keyboardTest.csv";
        File file = new File (dir, FILENAME)
       try {   
                FileOutputStream out = new FileOutputStream(file, true);
                out.write(Entry.getBytes());
                out.close();
            } catch (Exception err) {
                err.printStackTrace();
            }

现在我可以访问手机上的文件了

【问题讨论】:

  • 问题是?
  • @TodorKostov 编辑了问题

标签: java android csv android-studio


【解决方案1】:

在您在模拟器上运行应用程序或在根设备上运行应用程序之前,您无法访问这些文件(在 /data/data 内)。

请查看this了解更多详情。

编辑

您可以执行以下操作将文件保存在可访问的位置:-

/*get the path to internal storage*/
File path = Environment.getExternalStorageDirectory();
/*create the app folder and check if it exists or not*/
File curDir = new File(path.getAbsolutePath()+"/"+appName);
if(!curDir.exists()){
        curDir.mkdirs();
}
/*create the file*/
File f = new File(curDir+"/"+fileName);
f.createNewFile();
/*code to edit the file*/

【讨论】:

  • @csciBeginner 你也可以检查一下stackoverflow.com/questions/13006315/…
  • 我以为您无法访问数据库。我认为 csv 或 txt 会很好,因为它会放在文件夹中。在 Android 看来,他们建议按照我使用的方式存储数据
  • 如果您在运行 Android M 的设备上测试您的应用程序,那么您必须在运行时请求权限,并且您可能还必须提供存储文件的路径。您将需要使用 Environment.getExternalStorageDirectory() 来获取路径并在那里保存文件
  • @shrijit 你能告诉我如何实现吗?我应该在哪里将它添加到我现有的代码中?
  • @csciBeginner 我添加了代码。如果没有成功,请发表评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多