2012-04-12 51 views
1

我必须将我的学校项目JDK 1.7切换到1.6。我在平台1.6上创建了一个新项目并复制了所有包装在我的项目中,好像1.6不支持这种缓冲读取器,请帮忙吗?我需要读取src中的文件。如果我使用扫描仪,我应该罚款吗?将项目从JDK 1.7切换到1.6 BufferedReader

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

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

你使用的是jsp吗? – biplav 2015-04-07 07:03:52

回答

7

这不是BufferedReader是一个问题的问题 - 这是你的try-with-resources statement,这是在Java 7中引入了你需要手动关闭读者:

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

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

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

+0

谢谢!我们不能使用外部库:/ – Dav 2012-04-12 19:58:47

2

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

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