我有一个应用程序,需要在连接到流时收集一堆数据。 我需要将此数据保存到一个文件中,以便稍后从设备中提取并使用标准计算机进行分析。
我的代码目前如下所示:
private void saveData(byte[] data){
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "_Ascent_Test.txt");
try {
FileOutputStream stream = new FileOutputStream(file, true);
stream.write(data);
stream.close();
Log.i("saveData", "Data Saved");
} catch (IOException e) {
Log.e("SAVE DATA", "Could not write file " + e.getMessage());
}
}
它正确地点击了"数据已保存"日志,没有任何错误,但是当我从计算机浏览文件时,我在设备内部存储的任何地方都找不到该文件。
我错过了什么?
谢谢。
编辑:我需要在Nexus 7上运行它
文件不可见,除非您明确提供它们。请参阅我关于MediaScanner的博客文章以阅读有关此内容的更多信息。
开发人员的工作是处理这个问题,并确保用户可能想要访问的所有文件都可供 MediaScanner 使用。
我想做一件非常相似的事情。这是我如何使用您的代码精确地使用它
。运行我的代码后制作文件(/storage/emulated/0/Download/_Ascent_Test.txt):
我下载了 ES 文件资源管理器。
在底部的"快速访问"菜单中,我打开了"显示隐藏文件"。
然后,同样在"快速访问"菜单中,转到本地 ->/设备。
现在,您将能够导航到/storage 文件夹,并一直导航到_Ascent_test.txt
从那里您可以打开它并自己通过电子邮件发送。希望这有帮助!
这似乎是Nexus 4和7的已知问题。 我仍然没有解决方法,但是就目前而言,使用Astro文件管理器向自己发送电子邮件将解决手头的紧迫问题。
将文件保存在Nexus 7上的外部存储上并从PC检索
Nexus 4 不通过 MTP 显示文件
在这样的事情上浪费几个小时总是很有趣。嘎!