ファイルからObjectOutputStreamを読み取り、それを配列リストに変換しようとしています。このすべては、ファイルを読み取って配列リストを返す必要があるメソッド内で発生しています。
public static List<Building> readFromDatabase(){
String fileName="database.txt";
FileInputStream fileIStream=null;
ObjectInputStream in=null;
List<Building> buildingsArr=null;
try
{
fileIStream = new FileInputStream(fileName);
in = new ObjectInputStream(fileIStream);
buildingsArr=(ArrayList<Building>)in.readObject();
}
catch(IOException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException e)
{
Console.printPrompt("ArrayList<Building> class not found.");
e.printStackTrace();
}
finally{
Console.printPrompt("Closing file...");
close(in);
close(fileIStream);
return buildingsArr;
}
}
Javaは、これは危険だと言っています。選択肢は何ですか?リターンを「try」ブロックに入れることができません。それは、「finally」ブロック内のファイルを閉じないためです。ファイルが閉じられることを確認し、作成した配列リストも返す必要があります。何か案は?