黑马程序员技术交流社区
标题:
MyBufferedReader的程序问题,求帮忙,谢了
[打印本页]
作者:
陈国斌
时间:
2013-4-30 16:38
标题:
MyBufferedReader的程序问题,求帮忙,谢了
以下程序运行结果怎么会是null啊?asdf.txt文件里边明明有内容啊
import java.io.*;
class MyBufferedReader
{
private FileReader r;
MyBufferedReader(FileReader r)
{
this.r = r;
}
public String myReadLine()throws IOException
{
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = r.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
public void myClose()throws IOException
{
r.close();
}
}
class MyBufferedReaderDemo
{
public static void main(String[] args)throws IOException
{
FileReader fr = new FileReader("asdf.txt");
MyBufferedReader myBuf = new MyBufferedReader(fr);
String line = null;
while((line=myBuf.myReadLine())!=null);
{
System.out.println(line);
}
myBuf.myClose();
}
}
复制代码
作者:
wudongzhe
时间:
2013-4-30 17:15
楼主 你坑死人不偿命 我说怎么找不到错误呢 while((line=myBuf.myReadLine())!=null); 你这里已经分号结束了 怎么读啊
作者:
李慧声
时间:
2013-4-30 17:46
大哥 为什么复制下来你的代码有这么一个分号呢 、
while((line=myBuf.myReadLine())!=null) ; <---分号就显然是ok的 直接执行打印了 所以的到的是null
可能不小心加了一个“;” 在页面上感觉没问题,但是一运行就是null 瞅了半天,你原来一不留神多加了一个“;”,
作者:
李慧声
时间:
2013-4-30 17:46
把那个分号去掉就OK了
作者:
陈国斌
时间:
2013-4-30 21:28
哦,非常感谢各位,看来又是死在细节上了,用毕老师的话说,别看问题小,要了命了
作者:
陈国斌
时间:
2013-4-30 21:30
尹桥印 发表于 2013-4-30 16:49
是不是路径没有写全啊,asdf.txt这个文件是存在哪个地方的呐
就在当前路劲,没错,已经解决了,多了分号,仍然感谢你
作者:
郭孟涛
时间:
2013-4-30 21:30
在细节上了
作者:
黄玉昆
时间:
2013-4-30 23:09
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2