위 글은 김성박선생님의 자바 강의를 바탕으로 쓰여졌습니다.
더 자세한 내용은 아래 링크를 통해 알아보실 수 있습니다.
사용자의 정보를 저장하고 읽어오는 기능을 갖는다.
public UserDao(String filename){
this.filename = filename;
}
생성자로 filename을 갖는다.
생성자를 가져야하는 이유
https://www.inflearn.com/questions/277163
public void saveUSer(List<User> list){
try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filename))){
out.writeObject(list);
}catch(Exception ex){
ex.printStackTrace();
}
}
List<User>
User를 목록으로 받는다.(list로 받아들여서 저장한다)public List<User> getUser(){
File file = new File(filename);
if(!file.exists()){
return new ArrayList<>();
}
}
파일이 존재하면, 읽어들이는 코드
User형식의 List객체를 만든다.
List<User> list = null;
try(ObjectInputStream in) = new ObjectInputStream(new FileInputStream(filename))){
list = (List<User>)in.readObject();
} catch(Exception ex){
ex.printStackTrace();
}
return list;
private BufferedReader br;
public UserUI(){
br = new BufferedReader(new InputStreamReader(System.in));
}
public int menu(){
System.out.println("1. 회원등록");
System.out.println("2. 회원목록보기");
System.out.println("5. 종료");
int menuId = -1;
try {
String line = br.readLine();
menuId = Integer.parseInt(line);
// 문자열을 정수로 변환
}catch(Exception ex){
ex.printStackTrace();
}
return menuId;
}
menu메소드는
선택지를 출력하고, UserUI에서 입력받은 br을 Integer로 변환한 후, 반환하는 메소드이다.
regMenu() 메소드는 User형식을 반환하는 메소드이다.
br.readLine()
으로 email, name, strBirthYear를 입력받고, user 객체에 넣어준다. 예외처리를 해주고 예외발생시 예외출력 후 null 값을 반환해준다.
public User regMenu(){
try{
System.out.println("email을 입력하세요.");
String email = br.readLine();
System.out.println("이름을 입력하세요.");
String name = br.readLine();
System.out.println("생년을 입력하세요.");
String strBirthYear = br.readLine();
int birthYear = Integer.parseInt(strBirthYear);
User user = new User(email, name, birthYear);
return user;
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
public void printUserList(List<User> users)
public필드에 반환 타입은 없고 메소드명은 printUserList이다
User타입의 users를 매개변수로 갖는다.
for(int i=0;i<users.size();i++)
users의 사이즈만큼 반복해서 user객체의 이메일, 이름, 생년월일을 출력한다.