展开全部

看了下代码,有2个逻辑错误判断文件62616964757a686964616fe58685e5aeb931333335316435是否为空,使用readLine方法,如果返回null,表示为空

ready()表示文件是否准备完毕

if(!br.ready()) 文件为空

文件读入流后,一直处于准备中,因此程序不会进入if(!br.ready())语句

不清楚你的逻辑,只能部分修改你的代码,希望有帮助,代码和注释如下:

StringBuffer sb = new StringBuffer();
br = new BufferedReader(new FileReader(""));
while ((lineStr = br.readLine()) != null) { // 这里是第一次去,如:第1行
int i = 0;
while (i <= lineStr.length() - 1) {
ch = lineStr.charAt(i);
if (ch == dyh.charAt(0)) {
sb.append(ch);
while (ischaracter) {
if (i == lineStr.length() - 1) {
}
if ((lineStr = br.readLine()) != null) { // 文件不为空:这个时候读取了下一行,针对上去是第2行
if (lineStr.trim().length() == 0) { // 去除空格后,长度等于0,表示这是个一空行
// 这是一个空行,加入你的逻辑
} else {
// 这行有内容,加入你的逻辑
}
} else {
// 这里是文件为空
// 加入你的逻辑
}
}
}
}
}