我正在尝试从我正在编写的Android应用程序中一次输出一个数值,但是我在弄清楚发生了什么时遇到了很多麻烦。尝试寻找答案,但只是进一步混淆。这让我觉得应该是相对简单的事情,所以我觉得因此而感到非常愚蠢。
String directory = Environment.getExternalStorageDirectory().getAbsolutePath();
当我记录目录时,我得到一个路径“/ storage / emulated / 0”这是哪里?如果我没有调试,那会与我得到的不同吗?
然后我有:
String fileName = directory + "/Android/data/com.sample.app/files/test.txt"
File myFile = new File(fileName);
FileOutputStream fos;
try {
fos = new FileOutputStream(myFile);
String text = "Test text\n";
fos.write(text.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
我尝试使用Windows资源管理器来确定哪些内容正在保存和/或应该保存但我没有看到它。这是基于此链接中的信息的代码:http://developer.android.com/guide/topics/data/data-storage.html,但我真的不明白“/ storage / emulated / 0”来自何处以及如何访问该位置或将其删除。< / p> 编辑:现在我只想保存所有数字,以便查看结果。这些数字是从音频输入中记录的。
编辑:在我的手机上使用ASTRO File应用程序显示了这些文件 不需要“/Android/data/com.sample.app/files/”部分,不知道如何使用它。答案 0 :(得分:2)
路径错误?
/storage/emulated/0
是文件系统中代表外部存储的路径。在早期版本的Android中,我们经常使用/mnt/sdcard/
或类似的东西,但是现在许多设备都没有SD卡,但无论如何都要模拟外部存储。
要查看Android文件系统中的文件,我建议您使用Astro File Manager之类的应用。只需查看您的文件是否已写入。
一个可能的错误可能是,您在File.separator
和本地路径之间错过directory
。
String fileName = directory + File.seperator + "Android/data/com.sample.app/file/test.txt"
目录已创建?
您还应该通过调用myDir.mkDirs();
确保该目录存在,其中myDir
是没有文件名的完整路径。
要创建目录,您可以使用以下代码
directory = directory + "/Android/data/com.sample.app/file/test.txt"
new File(directory).mkDirs();
Manifest中的使用许可?
上一个错误来源可能是,您可能会错过外部存储权限,需要
您还需要确保您需要获得写入外部存储的权限。在Android Manifest文件中查看<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
。