您的位置:首页 > 其它

关于读取文件字符的两种写法在Lucene中的问题

2011-07-08 16:16 363 查看
记的前几个月抄一本书中的代码时报out of memory错误,当时就蒙了,处理很长时间都未果.今天和视频里的写法进行简单的比对和分析:

先是书中的给Field加值(content)
public String loadFileToString(File file)
{
try {
BufferedReader br = new  BufferedReader(new FileReader(file)));
StringBuffer sBuffer = new StringBuffer();
String lineString = br.readLine();
/*	while(lineString!=null)
{
sBuffer.append(lineString);
}
br.close();
return sBuffer.toString();*/
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
后者是视频中的代码

public static String readFileContent(File file) {
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
StringBuffer content = new StringBuffer();
for(String line = null; (line = bufferedReader.readLine())!=null;)
{
content.append(line).append("\n");
}
return content.toString();
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException(e);
}
//return null;
}
原因是 : while循环一直在执行lineString这句话,直到内存枯竭.
应在while中加入while(linString = bufferreader.readline()!=null)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: