下面我尝试关闭流,但在StrictMode中,我一直得到:
"资源是在附加的堆栈跟踪中获取的,但从未发布过。有关避免资源泄漏的信息,请参阅java.io.Closeable"。
该行被称为:
FileInputStream FIS = new FileInputStream(file);
以下是代码:
public static <T> T getStoredList(File file) throws IOException, ClassNotFoundException {
FileInputStream FIS = new FileInputStream(file);
ObjectInputStream OIS = new ObjectInputStream(FIS);
List<T> data = (ArrayList) OIS.readObject();
FIS.close();
OIS.close();
return (T) data;
}
在下面的评论之后,我将代码更新为:
public static <T> T getStoredList(File file) throws IOException, ClassNotFoundException {
FileInputStream FIS = null;
ObjectInputStream OIS = null;
try {
FIS = new FileInputStream(file);
OIS = new ObjectInputStream(FIS);
List<T> data = (ArrayList) OIS.readObject();
return (T) data;
} finally {
if (FIS != null) {
FIS.close();
}
if (OIS != null) {
OIS.close();
}
}
}
但有了这个,(T)数据为空。