我正在尝试从我正在编写的 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”从何而来以及我如何访问该位置或摆脱它。
编辑:现在我只想保存所有数字,以便检查结果。这些数字是从音频输入中记录下来的。
编辑:使用我手机上的 ASTRO 文件应用程序显示文件 不需要“/Android/data/com.sample.app/files/”部分,不知道如何使用它。
最佳答案
路径错误?
/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();
在 list 中使用权限?
最后一个错误来源可能是,您可能会错过外部存储权限,您需要一个
您还需要确保您需要写入外部存储的权限。查看<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在您的 Android list 文件中。
关于java - 将数据输出到 android 上的文件,不确定它要去哪里或是否去任何地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602042/