我有一个应用程序需要在连接到流时收集大量数据。我需要将这些数据保存到一个文件中,以后我可以将设备拉出来并使用标准计算机进行分析。
我的代码目前看起来像:
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上运行它
答案 0 :(得分:4)
除非您明确提供文件,否则文件不可见。请参阅我的blog post about the MediaScanner以了解详情。
开发人员的工作是处理此问题,并确保用户可能想要访问的所有文件都可供MediaScanner使用。
答案 1 :(得分:1)
我想做一个非常相似的事情。以下是我如何使用您的代码完全使用它。
运行我的代码后生成文件(/storage/emulated/0/Download/_Ascent_Test.txt):
我下载了ES文件浏览器。
在底部的“快速访问”菜单中,我打开了“显示隐藏文件”。
然后,同样在“快速访问”菜单中,转到本地 - > /设备。
现在,您将能够导航到/ storage文件夹,一直到_Ascent_test.txt
从那里你可以打开它并自己发送电子邮件。 希望这有帮助!
答案 2 :(得分:-1)
所以这似乎是Nexus 4和7的一个已知问题。我仍然没有解决方法,但是现在,使用Astro文件管理器给自己发送电子邮件将解决眼前的问题。
Saving files on external storage on Nexus 7 and retrieving from PC
Nexus 4 not showing files via MTP
在这样的事情上浪费几个小时总是很有趣。尔加!