首先,我知道我應該使用帶資源的try-catch,但是我目前沒有在我的系統上使用最新的JDK。Try-Catch-Finally - Final Block無法識別變量
我有下面的代碼,並試圖確保資源閱讀器關閉使用finally塊,但下面的代碼不能編譯的原因有兩個。首先,讀者可能還沒有被初始化,其次close()應該在自己的try-catch中被捕獲。這兩個原因都不是擊敗了初始try-catch塊的對象嗎?
我可以通過將它放在自己的try-catch中來解決finally塊close()語句的問題。然而這還留下關於讀者未被初始化的編譯錯誤?
我假設我出事了嗎?幫助讚賞!
乾杯,
public Path [] getPaths()
{
// Create and initialise ArrayList for paths to be stored in when read
// from file.
ArrayList<Path> pathList = new ArrayList();
BufferedReader reader;
try
{
// Create new buffered read to read lines from file
reader = Files.newBufferedReader(importPathFile);
String line = null;
int i = 0;
// for each line from the file, add to the array list
while((line = reader.readLine()) != null)
{
pathList.add(0, Paths.get(line));
i++;
}
}
catch(IOException e)
{
System.out.println("exception: " + e.getMessage());
}
finally
{
reader.close();
}
// Move contents from ArrayList into Path [] and return function.
Path pathArray [] = new Path[(pathList.size())];
for(int i = 0; i < pathList.size(); i++)
{
pathArray[i] = Paths.get(pathList.get(i).toString());
}
return pathArray;
}
Excatly,看起來像無意義的代碼生成:S感謝幫助解決初始化問題。 – Dave0504