java - 将数据输出到 android 上的文件,不确定它要去哪里或是否去任何地方

标签 java android file-io stream storage

我正在尝试从我正在编写的 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/

相关文章:

java - Google JIB 创建的 Docker Image 不包含 spring rest 文档的 asciidoc

java - JSoup总是超时

java - 从应用程序上下文中获取 bean 类型列表

java - Maven MojoExecutionException 异常

java - 使用 android 获取当前位置的代码中出现奇怪的错误

c - 递归地反转链表数组并不是按顺序反转所有节点

c - 在 windows 上写

c# - 如何获取用户文档目录的位置?

android - 返回时刷新 ViewPager 中的数据

android - 如何让应用自动扫描?