1

だから私は基本的にいくつかのログをテキストファイルに書き込もうとしているので、後で見ることができます。エミュレーターではなく、物理的な電話でこれを実行しています。私は非常に多くの異なるバリエーションを試しましたが、データ/データおよびストレージ/エミュレートへの書き込みが最も多かったのですが、ファイルにアクセスできません。どんな助けでも大歓迎です。私の最近の削除されていない例のいくつかは次のとおりです。

String filename = "myfile.txt";
try {
    File path = new File(context.getFilesDir(), "myfolder");
    if (!path.exists())
        path.mkdir();
    File output = new File(path, filename);
    BufferedWriter buff = new BufferedWriter(new FileWriter(output));
    buff.append("hi");
    Log.d("Success",
            "Successfully wrote a file " + context.getFilesDir());
} catch (Exception e) {
    e.printStackTrace();
}

final String appPath = String.format("%s/Datafiles",
        context.getFilesDir());
File path = new File(appPath);
if (!path.exists()) {
    path.mkdir();
}
String fileName = String.format("%s/filedemo.txt", appPath);

try {
    String filename = "myfile.txt";
    File path = new File(Environment.getRootDirectory(), "myfolder");
    if (!path.exists())
        path.mkdir();
    File output = new File(path, filename);
    BufferedWriter buff = new BufferedWriter(new FileWriter(output));
    buff.append("hi");
    Log.d("Success",
            "Successfully wrote a file " + context.getFilesDir());
} catch (Exception e) {
    e.printStackTrace();
}

次の両方は、 /storage/emulated/0/Android/data/com.example.simplete/files/system/stuff/test.txt および /storage/emulated/0/Android/data/com.example.simplete の下に配置します/files/storage/emulated/0/stuff/test.txt それぞれ

try {
    File file = new File(context.getExternalFilesDir(Environment
            .getRootDirectory().getCanonicalPath()), "stuff");
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    File output = new File(file, "test.txt");
    BufferedWriter buff;
    buff = new BufferedWriter(new FileWriter(output));
    buff.append("hi");
    buff.close();
    Log.d("Success", output.getCanonicalPath());
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

try {
    File file = new File(context.getExternalFilesDir(Environment
            .getExternalStorageDirectory().getCanonicalPath()),
            "stuff");
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    File output = new File(file, "test.txt");
    BufferedWriter buff;
    buff = new BufferedWriter(new FileWriter(output));
    buff.append("hi");
    buff.close();
    Log.d("Success", output.getCanonicalPath());
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

などなど。私は考えられるすべての例に従いました。私は文字通り、Computer\Nexus 5\Internal storage\ の下にあるテキスト ファイルを表示したいだけです。私は単純な欲求を持つ単純な人間です。なぜこれがそれほど複雑でなければならないのですか。

4

1 に答える 1

0

これを試しましたか?

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/");
File file = new File(dir, "text.txt");

FileOutputStream f = new FileOutputStream(file);
于 2014-09-11T23:58:09.567 に答える