3

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

我的代码目前看起来像:

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

4

3 回答 3

4

除非您明确使它们可用,否则文件是不可见的。请参阅我关于 MediaScanner 的博客文章以了解更多信息。

开发人员的工作是处理此问题并确保用户可能想要访问的所有文件都可供 MediaScanner 使用。

于 2013-01-31T13:41:52.633 回答
1

我想做一件非常相似的事情。这就是我如何完全使用您的代码使其工作的方法。

运行我的代码以制作文件后(/storage/emulated/0/Download/_Ascent_Test.txt):

我下载了 ES 文件资源管理器。

在底部的“快速访问”菜单中,我打开了“显示隐藏文件”。

然后,同样在“快速访问”菜单中,转到本地 -> / 设备。

现在您将能够导航到 /storage 文件夹并一直到 _Ascent_test.txt

从那里您可以打开它并自己发送电子邮件。希望这有帮助!

于 2014-08-14T05:07:48.200 回答
-1

所以这似乎是 Nexus 4 和 7 的一个已知问题。我仍然没有解决方法,但目前,使用 Astro File Manager 给自己发送电子邮件将解决眼前的问题。

在 Nexus 7 上的外部存储上保存文件并从 PC 检索

Nexus 4 未通过 MTP 显示文件

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

于 2013-01-29T23:07:55.087 回答