java - "cannot find symbol"试图关闭 I/O 对象时

标签 java exception-handling

public static int howMany(String FileName)
{
    BufferedReader br = null;

    try
    {
        FileInputStream fis = new FileInputStream(FileName);
        DataInputStream dis = new DataInputStream(fis);
        br = new BufferedReader(new InputStreamReader(dis));
    }
    catch (FileNotFoundException e)
    {
        System.out.print("FILE DOESN'T EXIST");
    }
    finally
    {
        fis.close();
        dis.close();
        br.close();
    }


    String input;
    int count = 0;

    try
    {

        while ((input = br.readLine()) != null)
        {
            count++;
        }

    }
    catch (IOException e) 
    {
        System.out.print("I/O STREAM EXCEPTION");
    }


    return count;
}

出于某种原因,我无法关闭任何 I/O 对象。 fis.close()、dis.close()、br.close() 都给我找不到符号,即使我导入了所有 I/O 库(导入 java.io.*;)并启动了所有对象。

最佳答案

 BufferedReader br = null;
 FileInputStream fis =null;
 DataInputStream dis null;
 try {
     fis = new FileInputStream(FileName);
     dis = new DataInputStream(fis);
     br = new BufferedReader(new InputStreamReader(dis));
 }

将它们从您的 try block 中取出,以便您的 finally block 可以看到变量。

关于java - "cannot find symbol"试图关闭 I/O 对象时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15281640/

相关文章:

java - 如何将值传递给在方法的 Controller 类中调用新页面的方法?

java - Java 中的 IOException 类应该是未经检查的 RuntimeException 吗?

asp.net - Application_error函数间歇性地捕获 "File does not exist"

java - 从 ADT 模拟器报告堆栈跟踪

java - 将文件从 Applet 拖放到桌面

c# - 使用通用类执行 try/catch/finally?

java - Try/Catch 未捕获异常

c++ - 什么是 “exception vomiting” ?

java - 关于终结器Guardian

java - 在构造函数中从另一个类设置值