Android/Java文本文件读取问题
我目前正试图使用InputStream从(res/raw)读取一个文件,我对其进行了如下标注: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 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。。。谢谢你的建议。