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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ゞ心痛-τ._煩離 中级黑马   /  2013-10-21 15:09  /  1814 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ゞ心痛-τ._煩離 于 2013-10-21 22:18 编辑
  1. import java.io.*;

  2. public class IO{
  3.         public static void main(String [] arge){
  4.                 try{
  5.                 BufferedReader in = new BufferedReader(new FileReader("Date.java"));
  6.                 String s = new String();
  7.                 String s2 =new String();
  8.                 while((s=in.readLine())!=null)
  9.                         s2+=s+"\n";
  10.                 in.close();
  11.                 //System.out.println(s2);
  12.             }
  13.                 catch(Exception e){
  14.                      System.out.println("hehe");        
  15.                 }
  16.                 System.out.println("hehehehehhehe");
  17.         System.out.println(s2);
  18.         }
  19. }
复制代码
怎么总有错误啊?怎么改啊

7 个回复

倒序浏览
报错信息指向18行的s2变量,因为这个变量是在try语句块中的局部变量,只能在try语句块里使用。
回复 使用道具 举报
写代码要有好的习惯,首先要把程序实现的功能写出来。代码要做注释。

只能看懂一个读取缓冲流,至于你循环里面的语句是什么意思s2+=s+"\n"; ???字符串和字符串做+=运算?S 和S2定义的也有问题 ,难不成你想实现将文件读取出来打印到控制台上?请先将代码修改。我不懂你要实现什么功能
回复 使用道具 举报
  1. package cn.itheima;
  2. /**
  3. * 你把s定义在了try的局部代码块内部,所以局部代码块外部是无法访问的
  4. * 若想整个方法都能访问,你需要把s定义为全局变量
  5. * 详见变量的作用域,函数那儿讲的。
  6. * 建议写程序前先想想程序是要做甚,画个流程图什么的,另外语法加强下...
  7. * @author Cuilitang
  8. *
  9. */

  10. public class Date{
  11.         public static void main(String [] arge) throws Exception{
  12.                 String s = null;   //当你把变量提到全局中后,整个方法都可以调用此变量
  13.             try{
  14.                     s =new String();
  15.             }
  16.             catch(Exception e){}
  17.         System.out.println(s);
  18.     }
  19. }

复制代码
回复 使用道具 举报
kellyzyb 发表于 2013-10-21 16:38
写代码要有好的习惯,首先要把程序实现的功能写出来。代码要做注释。

只能看懂一个读取缓冲流,至于你循环 ...

对待同志,我们要有春天般的温暖.
回复 使用道具 举报
写程序的时候先想想程序是要实现什么功能,脑袋里有一个解决流程,其次对语法要掌握好,不要稀里糊涂写出来,语法出了问题改来改去,太虐心...
回复 使用道具 举报
本帖最后由 未知数|X| 于 2013-10-21 20:39 编辑

你那里有两个问题一个是局部变量的问题 s2一个是路径书写的错误,你的Date.java类应该是你当前项目下的类吧 路径不能那样写,还有你的异常写的也不具体 应该是FileNotFoundException 和IOException你试试改成下面的看看
package t;
import java.io.*;
public class IO{
        public static void main(String [] arge) throws Exception{
             String s = null;
             String s2 =null;
                try{
               s=new String();
               s2=new String();
                       BufferedReader in = new BufferedReader(new FileReader("D:\\Myeclipse工作区间\\项目名称\\src\\包名\\Date.java"));
                   while((s=in.readLine())!=null)
                        s2+=s+"\n";
                      in.close();
                // System.out.println(s2);
                    }catch(FileNotFoundException e){}catch(IOException e){}
                System.out.println("hehehehehhehe");
                System.out.println(s2);
        
        }
}\
回复 使用道具 举报
cuilitang 发表于 2013-10-21 20:10
写程序的时候先想想程序是要实现什么功能,脑袋里有一个解决流程,其次对语法要掌握好,不要稀里糊涂写出来 ...

嗯,好的,受教了:D
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马