2

MarioZechnerの「BeginningAndroidGames」の本を読んでいるところですが、手に取ってよかったのですが、本の早い段階でユーザーにコーディングを要求する「テスト」の1つで問題が発生しています。私はそれらをコーディングすることに反対しているわけではありません。私は半分コックされた仕事をするよりも自分が何をしているのかを知りたいのです。

そのため、AssetManagerは私のファイルをロードしたくないようです。

    AssetManager am = getAssets();
    InputStream inputStream = null;
    try {
        am.open("assets/texts/hello.txt");
        String text = loadTextFile(inputStream);
        tv.setText(text);
    } catch (IOException e) {
        tv.setText("Could not Load file");
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                tv.setText("Could not close file");
            }
        }
    }
}

すべての標準で、「texts / hello.txt」というリンクを使用できるはずですが、実行するたびにNPEが発生します。だから私は完全なリンクを使用することを余儀なくされています。フルリンクを使用すると、プログラムを実行できます。「ファイルを読み込めませんでした」という指示に従って、テキストドキュメントを読み込めません。

後で大きな問題にならないように、今はこの問題をつぼみに挟むと考えました。

4

2 に答える 2

2

コードを次のように変更します。

 AssetManager am = getAssets();
    InputStream inputStream = null;
    try {

         inputStream= am.open("texts/hello.txt"); //<<<<
        String text = loadTextFile(inputStream);
        tv.setText(text);
    } catch (IOException e) {

    // your code here

メソッドにnullinputStreamを渡しているためloadTextFile

于 2013-01-25T17:08:46.440 に答える
0
// To load text file
        InputStream input;
        try {
          input = assetManager.open("helloworld.txt");

             int size = input.available();
             byte[] buffer = new byte[size];
             input.read(buffer);
             input.close();

             // byte buffer into a string
             String text = new String(buffer);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2013-01-25T17:19:47.807 に答える