我是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();
}
现在我可以在手机上访问该文件
答案 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*/