【问题标题】:Switching project from JDK 1.7 to 1.6 BufferedReader将项目从 JDK 1.7 切换到 1.6 BufferedReader
【发布时间】:2012-04-12 19:52:09
【问题描述】:

我不得不将我的学校项目 JDK 1.7 切换到 1.6。我在 1.6 平台上创建了一个新项目,并将所有内容复制到我的项目中,似乎 1.6 不支持这种缓冲阅读器,请帮忙?我需要从 src 中的文件中读取。如果我使用扫描仪应该可以吗?

try (BufferedReader br = new BufferedReader(new FileReader(sDataPath))){

Error " Resource specification not allowed here for source level below 1.7" 

【问题讨论】:

  • 你是在jsp中使用的吗?

标签: java transfer


【解决方案1】:

BufferedReader 不是问题 - 这是您的 try-with-resources statement,它是在 Java 7 中引入的。您需要手动关闭阅读器:

BufferedReader reader = new BufferedReader(new FileReader(sDataPath));
try {
    ...
} finally {
    reader.close();
}

顺便说一句,我建议反对使用FileReader - 使用InputStreamReader 包装FileInputStream,以便您可以指定编码。

哦,如果您被允许使用外部库,您可能会发现Guava 将使您的资源处理更简单:)

【讨论】:

  • 谢谢!我们不能使用外部库:/
【解决方案2】:

Java 7 允许使用 try() 构造自动处理资源。 Java 6 没有它。你需要这样写:

BufferedReader br=null
try {
    br = new BufferedReader(...); // create and use BufferedReader here
}
finally {
    if(br!=null) br.close();
}

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2013-07-29
    • 1970-01-01
    • 2018-05-06
    • 2014-04-15
    • 2018-03-01
    相关资源
    最近更新 更多