2012-04-12 89 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(); 
}