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();
}

しかし、エラーが発生します。それはout3ですnull。なんで?

使用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

ルートなしで内部メモリに書き込むことはできません。AndroidOSはOSを保護するためにこのように記述されています。代わりに、着信音やその他のパーソナライズされたデータに使用されるメインメモリ上のSDカードのように機能するフォーマットされた量のスペースがあります。すべてのドロイドはSDカードを持っているか使用するようにフォーマットされており、銀河系のネクサスにもSDカードが内蔵されています。カードにファイルを書き込むと、より多くのデバイスがヒットします。それ以外の場合はルートアクセスが必要になり、Androidデバイスの10%のみがルート化されます。

于 2012-09-29T13:40:06.907 に答える