package ch1.inputstream;
import java.io.*;
public class data
{

public  static void main(String args[]){
try{
FileInputStream fin=new FileInputStream("D:\\javadaima\\src\\ch1\\inputstream\\a.txt");
}catch(FileNotFoundException ex){ex.printStackTrace();}
try{
byte b=(byte)fin.read(); }catch(IOException ex){ex.printStackTrace();}
System.out.println(b);
}
}D:\javadaima>javac -d class D:\javadaima\src\ch1\inputstream\data.java
D:\javadaima\src\ch1\inputstream\data.java:11: 找不到符号
符号: 变量 fin
位置: 类 ch1.inputstream.data
        byte b=(byte)fin.read();
                     ^
D:\javadaima\src\ch1\inputstream\data.java:14: 找不到符号
符号: 变量 b
位置: 类 ch1.inputstream.data
        System.out.println(b);
                           ^
2 错误

解决方案 »

  1.   


    public class data
    {
        
        public  static void main(String args[]){
            try{
            FileInputStream fin=new FileInputStream("D:\\javadaima\\src\\ch1\\inputstream\\a.txt");
             byte b=(byte)fin.read();        }catch(Exception ex){
           ex.printStackTrace();
        }
        System.out.println(b);
        }
    }
      

  2.   

    javac -d class D:\javadaima\src\ch1\inputstream\data.java
    你这是什么意思
      

  3.   

    作用域的问题。每一个try里面是一个局部变量,不可在外面使用
      

  4.   

    fin和b都是局部变量 不在他的作用域使用当然会出问题
    先在外面声明并初始化package ch1.inputstream;
    import java.io.*;
    public class data
    {
        
        public  static void main(String args[]){
            FileInputStream fin= null ;
            byte b = 0 ;
            try{
            fin=new FileInputStream("D:\\javadaima\\src\\ch1\\inputstream\\a.txt");
            }catch(FileNotFoundException ex){ex.printStackTrace();}
            try{
            b=(byte)fin.read();        }catch(IOException ex){ex.printStackTrace();}
        System.out.println(b);
        }
    }
      

  5.   

    变量生存期呀……变量b是在第二个try块里声明的局部变量,它的生存期在所在语句块结束后就跟着结束了。
    System.out.println(b);在第二个try语句块之外,运行时变量b已经不存在了。