A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 学习代码 中级黑马   /  2014-3-29 16:49  /  1066 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. import java.io.*;

  2. class  FileReaderDemo
  3. {
  4.         public static void main(String[] args)throws Exception
  5.         {
  6.                 FileReader fr = new FileReader("demo.java");
  7.                 //int num= fr.read();
  8.                 //System.out.println((char)num);
  9.                
  10.                 while(true)
  11.                 {
  12.                         int num1 = fr.read();
  13.                         if(num1!=-1)
  14.                                 System.out.println((char)num1);
  15.                        
  16.                                 /*if(num1==-1)
  17.                                         break;
  18.                                 System.out.println((char)num1);*/
  19.                 }
  20.                 fr.close();//为什么这句话会报错啊
  21.                                         //如果把上面注释的代码打开的话,就可以,不理解
  22.                
  23.         }
  24. }
复制代码

谢谢

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
/*if(num1==-1)

      break;

       System.out.println((char)num1);*/

没有这个会是个死循环,出不来的

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
没有抛出异常
  1. public static void main(String[] args){
  2.                 FileReader fr = null;
  3.                 try{
  4.                         fr = new FileReader("demo.java");
  5.                 //int num= fr.read();
  6.                 //System.out.println((char)num);
  7.                 
  8.                 while(true)
  9.                 {
  10.                         int num1 = fr.read();
  11.                         if(num1!=-1)
  12.                                 System.out.println((char)num1);
  13.                         
  14.                                 /*if(num1==-1)
  15.                                         break;
  16.                                 System.out.println((char)num1);*/
  17.                 }
  18.                 }catch(IOException e){
  19.                         throw new RuntimeException("读取失败");
  20.                 }finally{
  21.                         try{
  22.                                 if(fr!=null){
  23.                                         fr.close();
  24.                                 }
  25.                         }catch(IOException e){
  26.                                 throw new RuntimeException("读取关闭失败");
  27.                         }
  28.                 }
  29.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
H-Deka 发表于 2014-3-29 16:51
/*if(num1==-1)

      break;

对的 确实出不来啊  没想到啊  谢谢
回复 使用道具 举报
两点提醒,希望能帮到你
  1. class  FileReaderDemo
  2.                 {
  3.                         public static void main(String[] args)throws Exception
  4.                         {
  5.                                 FileReader fr = new FileReader("d:1.txt");
  6.                                 //int num= fr.read();
  7.                                 //System.out.println((char)num);
  8.                                 
  9.                                 while(true)
  10.                                 {
  11.                                         int num1 = fr.read();
  12.                                         if(num1!=-1)
  13.                                                 System.out.println((char)num1);
  14.                                        
  15.                                                 /*if(num1==-1)
  16.                                                         break;
  17.                                                 System.out.println((char)num1);*/
  18.                                 }
  19.                                 //1.你没发现上面while内是死循环嘛,程序一直在while内打转,停不下来,那么下面那句代码是读不到的,编译时不能通过.
  20.                                 //2.如果把上面注释的代码打开,就不是死循环了,当num1=-1的时候,程序执行跳出循环,执行fr.close()代码,这样编译执行都能通过
  21.                             //    fr.close();//为什么这句话会报错啊
  22.                         //如果把上面注释的代码打开的话,就可以,不理解
  23.                                 
  24.                         }
  25.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马