Android将文件保存到SD卡,而不是内部存储

时间:2014-08-27 15:46:15

标签: android file external private

我知道有关于此的问题,但由于某种原因,似乎没有任何对我有用。 我试图从我的应用程序中获取2个文本文件以保存到SD卡。它正确地创建了目录和文件,但始终是内部存储,而不是外部存储。我在Manifest中也有权限。

try {
        File sdCard = Environment.getExternalStorageDirectory();
        File myFile = new File(sdCard.getAbsolutePath() + "/rlgl");
        myFile.mkdir();
       // myFile.createNewFile();
        String newLine = System.getProperty("line.separator");
        File file = new File(myFile, "rlgls.txt");
        if(file.exists())  {

        } else if (!file.exists()){
        FileOutputStream fOut = new FileOutputStream(file);
        OutputStreamWriter myOutWriter = 
                                new OutputStreamWriter(fOut);
        for (int i = 0; i < 30; i++) {
        myOutWriter.append("0.0" + newLine);
        }
        myOutWriter.close();
        fOut.close();
        }
        } catch (IOException e) {
            e.printStackTrace();
        }

这是我正在使用的代码。我已经按照其他Stackoverflow响应的指示,但它从未进入SD卡。有什么我做错了吗?另外一个跟进问题是我有一种方法可以使用上面的代码,以使文件对用户不可见。他们没有理由打开它们。提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

它正确地创建了目录和文件,但始终是内部存储,而不是外部存储

不,它将它们放在外部存储设备上。 用户看作内部存储的内容是开发人员所看到的external storage。可以通过getFilesDir()等方法访问Internal storage。这些都不是removable storage,例如某种形式的SD卡。

  

另外一个跟进问题是我有一种方法可以使用上面的代码,以使文件对用户不可见。他们没有理由打开它们。

然后将它们放在内部存储器上。

  

当存在“。”时,我的应用程序无法读取/写入文件。在他们的名字前面

我发现很难相信。 .前缀使得它们在某些文件浏览器中默认不显示,但就是这样。用户可以访问它们(如果它们在外部存储上),并且应用程序可以访问它们(遵循与任何其他文件相同的规则,那些没有前导.的文件。)