Android App: 保存一个可以通过资源管理器访问的txt文件

Android App: Save a txt file that can be accessed through Explorer

我正在尝试在我的应用程序运行期间创建一个 txt 文件,然后我想将其下载到我的计算机上并评估其中的内容。

我已经尝试了内部和外部存储,但之后(当我的平板电脑插入我的计算机时)我仍然无法找到文本文件。

private void writeToFile(String data) {
    try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("orp.txt",Context.MODE_WORLD_WRITEABLE));
        outputStreamWriter.write(data);
        outputStreamWriter.close();

        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"orp2.txt");
        String tempS = file.getAbsolutePath();
        file.setReadable( true, false ); 

        // if file doesnt exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(data);
        bw.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    } 
}

我发现能够找到("orp.txt" 或 "orp2.txt"),而且我在应用 运行 期间没有收到任何错误,并且应用是稍后可以打开 "orp.txt",所以我知道已经创建了。

我找不到创建的文件,除非使用 Eclipse 文件资源管理器,或者它可能必须触发媒体扫描,可以通过重新启动设备来完成。扫描设备上可用的文件。

可能是目录,我代码里就是这么写的

            File f = new File(cxt.getExternalFilesDir(filepath), fileName);
            f.createNewFile();
            FileWriter writer = new FileWriter(f); 
            writer.append(manNo+System.getProperty("line.separator"));
            writer.append(dateTime);
            writer.flush();
            writer.close();

感谢您的输入,但我发现答案与媒体扫描仪有关,"orp2.txt" 在我重新启动设备后出现在我的下载文件夹中。

这个答案和博客 post 帮助

Android: save file to downloads that can be viewed later