java - BufferedReader 未关闭警告未消失

标签 java eclipse warnings bufferedreader

我正在使用 BufferedReader,虽然我调用了 close() 方法,但 eclipse 仍然给我一个警告。 如果我在 while 之前调用 close() ,Eclipse 不会给我警告,但之后代码不起作用。 我的代码是否有错误,或者还有什么问题? 代码:

    Hashtable<String, Hashtable<String, Integer>> buildingStats = new Hashtable<String, Hashtable<String, Integer>>();
    try 
    {
        BufferedReader br = new BufferedReader(new FileReader(new File("Assets/Setup/Buildings.txt"))); // Sets the buildings values to the values in Buildings.tx
        String line;
        int lineNum = 0;
        while((line = br.readLine()) != null)
        {
            ++lineNum;
            String[] values = line.split(",");
            if (values.length != 3)
                throw new Exception("Invalid data in Assets/Setup/Buildings.txt at line " + lineNum);
            if (buildingStats.containsKey(values[0]))
            {
                buildingStats.get(values[0]).put(values[1], Integer.parseInt(values[2]));
            }
            else 
            {
                buildingStats.put(values[0], new Hashtable<String, Integer>());
                buildingStats.get(values[0]).put(values[1], Integer.parseInt(values[2]));

            }

        }
        br.close();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
    return buildingStats;

最佳答案

你应该把它放在finally方法中,如下所示:

BufferedReader br = null;
try {
    br = new BufferedReader(new FileReader(new File("Assets/Setup/Buildings.txt")));
    // do things
} catch (Exception e){
   //Handle exception
} finally {
    try {
        br.close();
    } catch (Exception e){}
}

如果您仍然收到警告,请尝试清理并重建您的 Eclipse 项目。

关于java - BufferedReader 未关闭警告未消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259800/

相关文章:

java - 包含整数、字符串和项目符号列表的 txt 文件 (1.)

c++ - 没有可行的重载 '=' 和继承

iphone - Xcode 有没有办法警告新的 API 调用?

c++ - 警告信息的目的?

java - DbUnit - 警告 : AbstractTableMetaData

java - 在这种情况下使用 JDesktopPane 和 JInternalFrame 是否合适?

java在树上迭代加深而不使用递归

java - 要开始使用 GWT 进行开发,需要下载哪种类型的 Eclipse?

mysql - Eclipse JPA 和 MySQL - JPA 方面的通用与 Eclipse Link 平台

java - 我想知道我的结构是否适合我所做的应用程序