0

このコードを使用してSDカードにファイルを作成して書き込みますが、Androidアプリを実行した後、SDカードに作成されたファイルが見つからないようです。コードに何か問題があるのか​​ どうかわかりません。私を助けてください。どんなコメントでも大歓迎です..ありがとう!

ここに私が使用しているコードがあります:

   private void writeToSDFile() {


    File root = android.os.Environment.getExternalStorageDirectory(); 
    tv.append("\nExternal file system root: "+root);



    File dir = new File (root.getAbsolutePath());
    dir.mkdirs();
    File file = new File(dir, "wordlist.txt");

    try {       



        FileOutputStream f = new FileOutputStream(file);


        PrintWriter pw = new PrintWriter(f);
        pw.println(stringword);
        pw.append(stringword);


        pw.flush();
        pw.close();
        f.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(TAG, "******* File not found.);
    } catch (IOException e) {
        e.printStackTrace();
    }   
    tv.append("\n\nFile written to "+file);

}//end writeToSDFile
4

1 に答える 1

0

あなたのコードには何も問題はないようです。次の 2 つのことを確認する必要があります。

1-マニフェストに適切な権限がある、つまりWRITE_EXTERNAL_STORAGE

2-外部ストレージはmounted例えば

if(Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED){
    // write your file
}

コードに冗長性があり、その行File dir = new File (root.getAbsolutePath());はまったく役に立ちません。

必要なものは次のとおりです。

File file = new File(Environment.getExternalStorageDirectory(), "wordlist.txt");
于 2013-02-16T02:42:59.267 に答える