try
{
BufferedReader in = new BufferedReader(new FileReader("Hello.java"));
}这一句,让你的变量in成了局部变量,使用范围只能在try{}里面
你应当这样写。
BufferedReader in;
try
{
in = new BufferedReader(new FileReader("Hello.java"));
}

解决方案 »

  1.   

    import java.io.*;
    public class IOTest 
    {

    public static void main(String args[]) // thrown FileNotFoundException
    {
    String myline;

    try
    {
    BufferedReader in = new BufferedReader(new FileReader("Hello.java"));
    myline = in.readLine();
    while (myline != null)
    {
    System.out.println(myline);
    myline = in.readLine();
    }
    }
    catch(FileNotFoundException e)
    {
    System.out.println("Got one file exception");
    e.printStackTrace();
    }
    catch (IOException e2)
    {
    System.out.println("Got one readline Exception");
    e2.printStackTrace();
    }
    }
    }
    以上是改好的程序,cannot resolve symbol 的意思一般是变量没有定义,或者方法没有定义的意思,你原先的程序in在try{}中定义的,那么它的作用域就在{}中,外,假如你在try{}外定义的话,第二个myline = in.readLine();会怀疑你没有初始化in,而要求你初始化,所以最好把这些语句放在一起,当然可以分别捕获异常