Android/Java文本文件读取问题

Android/Java文本文件读取问题,java,android,text,inputstream,bufferedreader,Java,Android,Text,Inputstream,Bufferedreader,我目前正试图使用InputStream从(res/raw)读取一个文件,我对其进行了如下标注: InputStream mStream = this.getResources().openRawResource(R.raw.my_text_file_utf_8); 然后我将其放入此方法以返回值: public List<String> getWords(InputStream aFile) { List<String> contents = new ArrayList

我目前正试图使用InputStream从(res/raw)读取一个文件,我对其进行了如下标注:

InputStream mStream = this.getResources().openRawResource(R.raw.my_text_file_utf_8);
然后我将其放入此方法以返回值:

public List<String> getWords(InputStream aFile) {

List<String> contents = new ArrayList<String>();
try {
  BufferedReader input =  new BufferedReader(new InputStreamReader(aFile));          
  try {
    String line = new String();//not declared within while loop
    while ((line = input.readLine()) != null ){              
        contents.add(line);
    }
  }
  finally {
    input.close();
  }
}
catch (IOException ex){
  ex.printStackTrace();
}

return contents;
公共列表getWords(InputStream文件){
列表内容=新建ArrayList();
试一试{
BufferedReader输入=新的BufferedReader(新的InputStreamReader(aFile));
试一试{
String line=new String();//未在while循环中声明
而((line=input.readLine())!=null){
内容。添加(行);
}
}
最后{
input.close();
}
}
捕获(IOEX异常){
例如printStackTrace();
}
返回内容;
}

我的问题:它读取所有应该读取的值,但是如果文件长度104行,它实际上会返回一个值,大约为134行,而剩下的30行充满空值

已检查:已使用UTF-8格式,并再次检查文档本身是否没有空行

我认为while循环的编写方式无法将line=null值记录到内容列表中?我是不是遗漏了什么


感谢您提供的建设性信息!我很确定我忽略了一些简单的因素

为什么不为信息创建HTML,然后对其进行解析。

将其用于许多静态字节数组。除了解决当前的问题之外,我不确定HTML在哪里能给我带来更好的性能。然后我不得不重写大量的代码来处理HTML。。。谢谢你的建议。