-1

私は過去数時間、自分でこれをやろうとしてきましたが、少し失っています.

私がやりたいことは、ファイルを開いて読み取り、コンソールに表示することだけです。それでおしまい。

Android 2.3.3の開発にEclipseを使用しています。

ここや他のサイトで見つけたコードで、さまざまな方法を試してみました。ここに私が今持っているものと、そのすべてがどのように呼ばれているかがあります:

OnCreate 関数では:

setContentView(new TestMap(this));

testMap クラス:

TestMap(Context context){
        super(context);
        // might need to be on the panel class
        loadTileFile("worldonelayout.txt", context);

同じクラスの中で:

private void loadTileFile (String filename, Context context){
        FileInputStream input = null;
        InputStreamReader reader = null;

        char[] inputBuffer = new char[256];
        String data = null;

        try {
            input = context.openFileInput("worldonelayout.txt");
            reader = new InputStreamReader(input);
            reader.read(inputBuffer);
            data = new String(inputBuffer);
            System.out.println(data);
            Toast.makeText(context, "Text read", Toast.LENGTH_SHORT).show();

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(context, "Text not read", Toast.LENGTH_SHORT).show();

        } finally {
            try {
                input.close();
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

このコードは機能しません。常に例外にヒットします。

"/data/data/com.name.somethingiremoved/files/worldonelayout.txt (そのようなファイルまたはディレクトリはありません)".

これは、最初の CATCH で発生します。ところで、私のファイルはルート ディレクトリにあります: Documents\Eclipse\workspace\project\worldonelayout.txt. 左側のブラウザにもファイルが表示されます

私がここや他のサイトで見たものから、Activity から派生した Context クラスと関係がありますか? このコードをアクティビティと同じクラスに入れたくありません。これを回避する方法はありますか?

他に何か必要なことがありましたら、お知らせください。

4

1 に答える 1

1

開いているファイルは、コンピュータではなく、電話機のファイル システムでファイルを探しています。/data/data/com.name.somethingiremoved/files/worldonelayout.txtの下の電話で、それが見つかると予想される正確な場所を教えてくれます

于 2012-04-05T18:49:31.077 に答える