0

私は Kindle Fire 用のアプリに取り組んでおり、ファイルの書き込みをテストして、今のところもう一度開いています。保存プロセスは正常に動作しているように見えますが、ロードボタンを押そうとすると、使用しようとするFileNotFoundExeceptionと a とそれに続くa がスローされます。NullPointerExeception

kindleでディレクトリを実際に表示できないため、正常に機能しているように見えます。保存ボタンを押してもエラーは発生しません。ディレクトリは としてリストされて/mnt/sdcard/Android/data/portalboat.concept/files/BLUH.txtいますが、そのディレクトリの Android フォルダをクリックするとすぐに、ではなく/mnt/sdcardにリダイレクトされます。表示できる完全なディレクトリには何もありませんが、同じかどうかはわかりません。/sdcard/Android/mnt/sdcard/Android

私は実行mkdirs()しましたがcreateNewFile(),、エラーがスローされていないため、ファイルが作成されていると考えられます。しかし、どうやらそうではありません。EXACT SAME File クラス作成行を使用してロードしようとすると FileNotFoundException が発生するためです。

何がこれを引き起こしているのか、誰にも考えがありますか?

SaveText は保存関数であり、LoadText は読み込み関数です。

public void SaveText(View view)
{
        File CS_File = new File(this.getExternalFilesDir(null), "BLUH.txt");
        CS_File.mkdirs();
        try {
            CS_File.createNewFile();
            FileWriter CS_FileWriter = new FileWriter(CS_File); 
            EditText CS_EditText = (EditText)findViewById(R.id.createscreen_edittext);
            String CS_MessageTemp = CS_EditText.getText().toString();
            CS_FileWriter.write(CS_MessageTemp);
            CS_FileWriter.close();
        }
        catch (IOException e) {
            Log.w("WriteFile", "Error writing" + CS_File, e);
        }
        TextView CS_TestText = (TextView)findViewById(R.id.createscreen_testtext);
        CS_TestText.setText(CS_File.toString());
    }
public void LoadText(View view)
    {
        File CS_File = new File(this.getExternalFilesDir(null), "BLUH.txt");
        String CS_Message = "";
        try {
            FileInputStream CS_FileInputS = new FileInputStream(CS_File);
            CS_FileInputS.read(CS_Message.getBytes(), 0, CS_Message.length());
            CS_FileInputS.close();
        } catch (IOException e) {
            Log.w("LoadFile", "Error loading" + CS_File, e);
        }
        Intent INT_DisplayScreen = new Intent(this, ACT_DisplayScreen.class);
        INT_DisplayScreen.putExtra(EXTRA_MESSAGE, CS_Message);
        startActivity(INT_DisplayScreen);
    }

エラーダンプ。(リンクの完全なダンプ)

08-20 17:23:31.349: W/LoadFile(1399): Error loading/mnt/sdcard/Android/data/portalboat.concept/files/BLUH.txt
08-20 17:23:31.349: W/LoadFile(1399): java.io.FileNotFoundException: /mnt/sdcard/Android/data/portalboat.concept/files/BLUH.txt: open failed: ENOENT (No such file or directory)
08-20 17:23:31.349: W/LoadFile(1399):   at libcore.io.IoBridge.open(IoBridge.java:406)
08-20 17:23:31.349: W/LoadFile(1399):   at java.io.FileInputStream.<init>(FileInputStream.java:78)
08-20 17:23:31.349: W/LoadFile(1399):   at     portalboat.concept.ACT_CreateScreen.LoadText(ACT_CreateScreen.java:86)
08-20 17:23:31.349: W/LoadFile(1399):   at java.lang.reflect.Method.invokeNative(Native Method)
08-20 17:23:31.349: W/LoadFile(1399):   at java.lang.reflect.Method.invoke(Method.java:511)
08-20 17:23:31.349: W/LoadFile(1399):   at android.view.View$1.onClick(View.java:3068)
08-20 17:23:31.349: W/LoadFile(1399):   at android.view.View.performClick(View.java:3540)
08-20 17:23:31.349: W/LoadFile(1399):   at android.view.View$PerformClick.run(View.java:14167)
08-20 17:23:31.349: W/LoadFile(1399):   at android.os.Handler.handleCallback(Handler.java:605)
4

1 に答える 1

0

DMS を使用して、ファイルが正常に作成されたかどうかを確認できます。

以下を試してファイルを読んでください

        File file = new File(Environment.getExternalStorageDirectory(),filename);
        if (file !=null) {// reading file from SD card
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String line = "";
            while((line = reader.readLine()) != null){
                // process line here
               }

            reader.close();
        }   

ロディが言うように、書き込み許可を追加することを忘れないでください

于 2013-08-21T01:45:30.307 に答える