黑马程序员技术交流社区

标题: 怎么报异常啊? [打印本页]

作者: 张迁    时间: 2013-5-19 21:55
标题: 怎么报异常啊?
本帖最后由 张迁 于 2013-5-19 22:13 编辑

为什么报空指针异常呢??

  1. List<String> list = new ArrayList<>();
  2.                 BufferedReader bf = new BufferedReader(new FileReader("笔记.txt"));
  3.                 String str;
  4.                
  5.                 while(!(str = bf.readLine()).isEmpty()){      //判断是否为空,为什么报空指针异常呢?
  6.                         list.add(str);
  7.                 }
  8.                 bf.close();

  9.                 BufferedWriter bw = new BufferedWriter(new FileWriter("test2.txt"));
  10.                 for (int i = list.size()- 1; i >=0; i--) {
  11.                         bw.write(list.get(i));
  12.                         bw.newLine();
  13.                 }
  14.                 bw.close();
复制代码

作者: 画饼    时间: 2013-5-19 22:01
把异常信息贴出来哦
作者: 回首、后_街    时间: 2013-5-19 22:02
应该是str为null,所以才会报空指针异常!
可能是没有读取到数据,笔记.txt存在吗?
作者: 画饼    时间: 2013-5-19 22:04
while((str = bf.readLine())!=null){      这样不是很好么
作者: 画饼    时间: 2013-5-19 22:08
为0时是true 。那就循环执行。那当然会空指针啊
作者: 画饼    时间: 2013-5-19 22:09
不知道你前面的!会不会取反。。嘿嘿,我是新手,只提下我的意见,别喷我哈
作者: 张迁    时间: 2013-5-19 22:10
回首、后_街 发表于 2013-5-19 22:02
应该是str为null,所以才会报空指针异常!
可能是没有读取到数据,笔记.txt存在吗? ...

哦哦,错在这,那就不能这样写了吧,文件最后都有空
作者: 张迁    时间: 2013-5-19 22:10
画饼 发表于 2013-5-19 22:04
while((str = bf.readLine())!=null){      这样不是很好么

恩恩!是的
作者: 画饼    时间: 2013-5-19 22:16
张迁 发表于 2013-5-19 22:10
恩恩!是的

y原来你是张迁
作者: 熊永标    时间: 2013-5-19 22:16
  1. while(!(str = bf.readLine()).isEmpty()){      //判断是否为空,为什么报空指针异常呢?

  2. 07.                        list.add(str);

  3. 08.                }
复制代码
此循还能胜利执行,当执行到最后时,因为readline()方法读到最后,没有数据了,返回了一个null,再调用isEmpty()方法,必然会报NullPointerException异常
作者: 张迁    时间: 2013-5-19 22:36
画饼 发表于 2013-5-19 22:16
y原来你是张迁

我是传智0418基础班的,你也是?
作者: 张迁    时间: 2013-5-19 22:37
熊永标 发表于 2013-5-19 22:16
此循还能胜利执行,当执行到最后时,因为readline()方法读到最后,没有数据了,返回了一个null,再调用isEmpty() ...

嗯,没注意到这点,现在知道了,谢谢哈!
作者: 画饼    时间: 2013-5-19 23:38
张迁 发表于 2013-5-19 22:36
我是传智0418基础班的,你也是?

不是啦,宝贝,我是在黑马群里看见你的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2