2

オブジェクトを使用したファイルの読み取りに問題がありFileInputStreamます。開きたいファイルが存在します (同じアプリで作成したので、デバイスのファイル マネージャーで表示できます)。それが方法です:

public String readFile(String name) {
    try {
        FileInputStream fis;
        String res = "", read;
        File tmp = new File(directory, name);
        fis = new FileInputStream(tmp);

        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader buffered_reader = new BufferedReader(isr);

        read = buffered_reader.readLine();
        while (read != null) {
            res = res + read;
            Log.i("AAAAAAAAAAAAAAAAA", "letto"+read);
            read = buffered_reader.readLine();
        }
        isr.close();
        fis.close();
        return res;

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Log.i("AAAAAAAAAA", "Letto un cazzo");
    return null;
}

ディレクトリ変数は次のように宣言されます。

private static File directory;

これは、アプリケーション ディレクトリの静的オブジェクト ファイルを格納します。問題はどこだ?

ログキャットは言う

open に失敗した enoent (そのようなファイルまたはディレクトリはありません)

並んで

fis = new FileInputStream(tmp);
4

3 に答える 3

1
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
于 2013-03-14T21:17:25.910 に答える
0

FileInputStream openFileInput(String nameOfFile)

このコンテキストのアプリケーション パッケージに関連付けられたプライベート ファイルを読み取り用に開きます。

アピから。私はそれを使用しましたが、問題はありませんでした。

于 2013-03-14T21:50:42.163 に答える
0

open に失敗した enoent (そのようなファイルまたはディレクトリはありません)

私の提案は、それを次のように修正することです

FileInputStream fis;
File tmp = new File(directory, name);
if (tmp.exists() && tmp.isFile()) {
   fis = new FileInputStream(tmp);
   InputStreamReader isr = new InputStreamReader(fis);
   BufferedReader buffered_reader = new BufferedReader(isr);
   // next lines ...
}
else {
  // error
}

したがって、それを機能させる方法はありません。正しく渡す必要がありますFILE_PATH。そうしないと機能しません。また、読み書きの権限があるかどうかも確認してください。

于 2013-03-14T20:54:51.673 に答える