0

我试图将一个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()它时它正在工作,但我想写入手机内存?

4

2 回答 2

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();
    }
于 2012-09-29T14:20:32.270 回答
-1

没有root你不能写入内存,Android OS是这样写的,以保护操作系统。取而代之的是,在用于铃声和其他个性化数据的主存储器上,有一个格式化的空间量,就像一个 sd 卡。所有机器人都被格式化为拥有或使用 SD 卡,即使 Galaxy Nexus 也有内部 SD 卡。将文件写入卡将影响更大的设备阵列。否则,您将需要 root 访问权限,并且只有 10% 的 android 设备是 root 的。

于 2012-09-29T13:40:06.907 回答