0

アプリで使用したい raw フォルダーにテキスト ファイルがあります。私は ListFragments を使用しており、選択されている項目に応じて、そのファイルのテキストを新しいレイアウトにロードしたいと考えています。

テキストを適切に読み込むことができますが、ファイルの最初の行を ListView に表示されるタイトルにするために、以前にファイルをスキャンできるようにしたいと考えています。raw フォルダー内のファイルの数を決定し、その名前を ArrayList に追加するメソッドがあります。

これが私の方法です:

    private void listRaw() {
    Field[] fields = R.raw.class.getFields();

    for (int count = 0; count < fields.length; count++) {

            myArrayList.add(fields[count].getName());
    }
}

私が抱えている問題は、スキャナーのセットアップです。この特定のファイルをスキャンするようにスキャナに指示する方法がわかりません。新しい File オブジェクトを作成して Scanner(File) を使用しましたが、ファイル名を適切に宣言しているとは思いませんし、これがこれを行うための最良の方法でさえあるとは思いません。通常、ファイル名がわかっている場合は、次のように簡単に実行できます。

Scanner fileReader = new Scanner("ファイル名");

しかし、このループでは、実際にファイル名を設定することはありません。

4

1 に答える 1

0

アプリで使用したい raw フォルダーにテキスト ファイルがあります。

「生のフォルダー」とはres/raw/、プロジェクトのリソース ディレクトリを意味すると想定しています。

この特定のファイルをスキャンするようにスキャナに指示する方法がわかりません

ファイルがないからです。ファイルは開発マシンに存在します。実行時の未加工リソースの表現は、まさにそれです: 未加工リソースです。内部的には、事実上、ZIP ファイル内のエントリです。

R.raw生のリソースの値を取得する必要があり、次に を使用して に渡すことができるgetResources().openRawResource()を取得します。InputStreamScanner

構成 (言語など) ごとにこれらの生リソースのエディションが異なる場合を除き、assets/ディレクトリをAssetManager操作したり、テキスト ファイルをアプリにパッケージ化したりする方が簡単な場合があります。

于 2013-06-20T17:26:10.090 に答える