无法在Android上将txt文件写入手机内存

时间:2012-09-29 13:29:48

标签: java android fileoutputstream android-file

我尝试将txt文件写入手机内存。

我使用此代码:

FileOutputStream out3 = null;
try { 
    out3 = new FileOutputStream(
        Environment.getRootDirectory() + "/a_directory/b.txt");
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

但是我收到了一个错误。它说out3null。为什么呢?

当我使用Environment.getExternalStorageDirectory()时,它正在工作,但我想写入手机内存?

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

        File myExternalFile = new File(getExternalFilesDir(filepath), "file.txt");


                     try {
        FileOutputStream fos = new FileOutputStream(myExternalFile);
          OutputStreamWriter osw = new OutputStreamWriter(fos);
          osw.append(text.getEditableText().toString());
          osw.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

答案 1 :(得分:-1)

你无法在没有root的情况下写入内部存储器,Android OS就是用这种方式编写来保护操作系统的。相反,存在格式化的空间量,其作用类似于用于铃声和其他个性化数据的主存储器上的SD卡。所有机器人都被格式化为拥有或使用SD卡,即使galaxy nexus也有内部SD卡。将文件写入卡将触及更大的设备阵列。否则你将需要root访问权限,只有10%的Android设备是root用户。