?? objectserialuserdao.java
字號:
package server.dao;
import java.util.*;
import java.io.*;
import server.model.User;
//用對象序列化實(shí)現(xiàn)DAO
public class ObjectSerialUserDAO implements UserDAO {
private String fileName;
public ObjectSerialUserDAO(String fileName) {
this.fileName = fileName;
}
public Map<String, User> getAllUsers() {
Map<String,User> users=new HashMap<String,User>();
ObjectInputStream in=null;
try {
FileInputStream fi=new FileInputStream(fileName);
in=new ObjectInputStream(fi);
while(true){
Object o=in.readObject();
User u=(User)o;
users.put(u.getUserName(),u);
}
} catch (Exception e) {
}
finally{
try {
if (in!=null) in.close();
} catch (IOException e) {
}
}
return users;
}
public List<User> getAllUsersByClassNumber(String classNumber) {
Map<String,User> users=getAllUsers();
List<User> l=new ArrayList<User>();
Set<String> userNames=users.keySet();
for(String s:userNames){
User u=users.get(s);
if (classNumber.equals(u.getClassNumber())){
l.add(u);
}
}
return l;
}
public boolean saveUser(User u) {
Map<String,User> users=getAllUsers();
try {
FileOutputStream fo=new FileOutputStream(fileName);
ObjectOutputStream out=new ObjectOutputStream(fo);
Collection<User> us=users.values();
for(User u2:us){
out.writeObject(u2);
}
out.writeObject(u);
out.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -