在Android设备上访问保存到内部存储的数据

时间:2016-07-27 20:44:21

标签: java android csv android-studio

我是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();
            }

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

1 个答案:

答案 0 :(得分:3)

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

请查看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*/