【发布时间】:2018-01-04 20:52:55
【问题描述】:
我正在尝试使用ObjectOutputStream 将人员列表保存在.txt 文件中。
public void writeUsers(List<Personnel> userList) {
userSize = userList.size();
try {
FileOutputStream fos = new FileOutputStream(userFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
for (Personnel user : userList){
oos.writeObject(user);
}
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
要读取文件,我使用以下方法:
public List<Personnel> readUsers() {
List<Personnel> userList = new ArrayList<Personnel>();
try {
FileInputStream fis = new FileInputStream(userFile);
ObjectInputStream ois = new ObjectInputStream(fis);
for(int i = 0; i < userSize; i++){
System.out.println("Entering loop");
userList.add((Personnel)ois.readObject());
}
System.out.println(userList.size());
ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return userList;
}
我的问题是,由于writeUser()中定义的属性userSize,然后在@987654329中的循环中使用,我无法使用read方法读取现有文件而不使用writeUser()方法@。
for(int i=0; i < userSize; i++)
我可以做些什么来获取文件中的对象数量吗?
感谢您的宝贵时间!
【问题讨论】: