将文本文件保存到Android中的公共内部内存位置

时间:2015-09-16 13:35:47

标签: android text save

我正在编写一个应用程序,我想在其中添加一个文本文件,因为会发生各种用户操作。我希望文本文件位于内部存储器中。如果用户使用USB电缆连接平板电脑,我希望在Windows资源管理器中也可以看到该文本文件。

我查看了很多示例,并且能够将文本文件写入内部存储器,但我似乎无法在文件管理器中显示该文件。

有没有人知道是否可以将文本文件写入内部存储器,并在Windows资源管理器下让用户可以看到它?或者我是否需要使用SD卡而不是内部存储器?

2 个答案:

答案 0 :(得分:2)

  

我希望文本文件位于内部存储器中。

“内部记忆”从编程的角度来看没有太多意义。

  

如果用户使用USB线连接平板电脑,我希望在Windows资源管理器中也可以看到该文本文件。

那将是external storage

  

但我似乎无法在文件管理器中显示该文件。

使用MediaScannerConnection及其scanFile()方法告诉MediaStore该文件。这将至少允许文件对Windows浏览器窗口等MTP客户端可见。请注意,您可能需要在该资源管理器窗口中“刷新”或“重新加载”以使Windows获取新文件。

答案 1 :(得分:2)

好的,我现在就按照我想要的方式工作。它将保存文本文件(并在每次写入时将其附加到平板电脑/手机的不可移动的DOWNLOAD文件夹中)。我的目标是最小的版本16(4.1.2 Jellybean)。

我会在下面发布以下代码,供其他对这个问题感到困惑的人。

float

您还需要在Manifest中添加以下行:

if float:

您需要导入:

try {
File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_DOWNLOADS);
File myFile = new File(path, "mytextfile.txt");
FileOutputStream fOut = new FileOutputStream(myFile,true);
    OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
    myOutWriter.append("the text I want added to the file");
    myOutWriter.close();
    fOut.close();

    Toast.makeText(this,"Text file Saved !",Toast.LENGTH_LONG).show();
    }

    catch (java.io.IOException e) {

    //do something if an IOException occurs.
    Toast.makeText(this,"ERROR - Text could't be
    added",Toast.LENGTH_LONG).show();
                      }