1

アプリのアセット フォルダーに保存されている単語リストがあり、各単語を読み込んで文字列と照合し、単語リストに含まれる単語の数を繰り返すことができるようにしたいと考えています。

readLine()これを行うには、メソッドを持つストリーム リーダーを使用できる必要があります。

以前に使用していた資産から読み取るために:

AssetManager am = getAssets();
InputStream in = am.open("wordlist.txt");
int data;
while((data=in.read())!=-1){
    System.out.println((char)data)
}in.close();

しかし、これは行を読みません。各 " data" が改行かどうかを確認できますcharが、これを行うより良い方法はありますか?

置換InputStreamするAssetManager 場合は、WordList (50,000 語) が非常に長いため、アルゴリズムを非常に高速にする必要があることをご承知おきください。

4

1 に答える 1

3

私はこれがあなたが望むことをすると信じています...

private String readFileFromAssets(String filename)
{
StringBuilder sb = new StringBuilder();
try
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open(filename), "UTF-8"));

    // do reading, usually loop until end of file reading
    String mLine = reader.readLine();
    while(mLine != null)
    {
    // process line
    sb.append(mLine);
    mLine = reader.readLine();
    }

    reader.close();
} catch(IOException e)
{
    // log the exception
    e.printStackTrace();
}

return sb.toString();
}
于 2013-09-03T14:22:21.890 に答える