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 Just so you know the WordList(50,000 words)的替代方案很长,所以算法需要非常快

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 回答