将项目从JDK 1.7切换到1.6 BufferedReader

时间:2012-04-12 19:52:10

标签: java transfer

我不得不将我的学校项目JDK 1.7切换到1.6。我在平台1.6上创建了一个新项目并复制了所有打包在我的项目中,似乎1.6不支持这种缓冲读卡器,请问有什么帮助吗?我需要从src中的文件中读取。如果我使用Scanner,我应该没事吗?

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

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

2 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:2)

Java 7允许使用try()构造自动处理资源。 Java 6没有它。你需要写一些类似的东西:

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