Android:将文件保存到以后可以查看的下载内容

时间:2013-01-29 22:13:43

标签: android file saving-data

我有一个应用程序需要在连接到流时收集大量数据。我需要将这些数据保存到一个文件中,以后我可以将设备拉出来并使用标准计算机进行分析。

我的代码目前看起来像:

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上运行它

3 个答案:

答案 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

在这样的事情上浪费几个小时总是很有趣。尔加!