위 글은 김성박선생님의 자바 강의를 바탕으로 쓰여졌습니다.
더 자세한 내용은 아래 링크를 통해 알아보실 수 있습니다.
메일 주소가 메모리상의 회원정보에 있을 경우
----->
eoho115@naver.com 회원의 정보를 수정합니다.
이름을 입력하세요.
한대호
생년을 입력하세요.
2000
수정되었습니다.
메일 주소가 메모리상의 회원정보에 없을 경우
------->
수정할 회원 정보가 없습니다.
public String inputEmail(){
System.out.println("수정할 회원의 email을 입력해주세요.");
String email = "";
try{
email = br.readLine();
}catch(Exception ex){
ex.printStackTrace();
}
return email;
}
public User inputUser(String email){
try{
System.out.println(email + "회원정보를 수정합니다.");
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;
}
}
else if(menuId == 3){
String email = userUI.inputEmail();
User updateUser = userUI.inputUser(email);
}
package totojava.io;
import java.util.List;
public class UserMain {
public static void main(String[] args) {
UserUI userUI = new UserUI();
UserDao userDao = new UserDao("C:\\tmp\\user.dat");
List<User> users = userDao.getUsers();
while(true){
int menuId = userUI.menu();
if(menuId ==5){
System.out.println("종료합니다.");
userDao.saveUser(users);
break;
}else if(menuId == 1){
User user = userUI.regUser();
users.add(user);
System.out.println("등록되었습니다.");
}else if(menuId == 2){
userUI.printUserList(users);
}
else if(menuId == 3){
String email = userUI.inputEmail();
int findIndex = -1;
for(int i=0;i<users.size();i++){
User u = users.get(i);
if(u.getEmail().equals(email)){
findIndex = i;
break;
}
}
if(findIndex != -1){
User updateUser = userUI.inputUser(email);
users.remove(findIndex);
users.add(updateUser);
System.out.println("수정되었습니다.");
}else{
System.out.println("수정할 회원 정보가 없습니다.");
}
}else if(menuId == 4){
String email = userUI.inputEmail();
int findIndex = -1;
for(int i=0;i<users.size();i++){
User u = users.get(i);
if(u.getEmail().equals(email)){
findIndex = i;
break;
}
}
if(findIndex != -1){
users.remove(findIndex);
System.out.println("삭제하였습니다.");
}
else{
System.out.println("삭제할 회원 정보가 없습니다.");
}
}
}
}
}
package totojava.io;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* 파일에서 List<User> 정보를 저장하거나 읽어오는 기능
*/
public class UserDao {
private String filename;
public UserDao(String filename){
this.filename =filename;
}
public void saveUser(List<User> list){
try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filename))){
out.writeObject(list);
}catch(Exception ex){
ex.printStackTrace();
}
}
public List<User> getUsers(){
File file = new File(filename);
if(!file.exists()){
return new ArrayList<>();
}
List<User> list = null;
try(ObjectInputStream in = new ObjectInputStream(new FileInputStream(filename))){
list = (List<User>)in.readObject();
}catch(Exception ex){
ex.printStackTrace();
}
return list;
}
}
package totojava.io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
public class UserUI {
private BufferedReader br;
public UserUI(){
br = new BufferedReader(new InputStreamReader(System.in));
}
// 3. 회원정보수정하기
// 수정할 회원의 email을 입력하세요.
// urstory@gmail.com
public int menu(){
System.out.println("1. 회원등록");
System.out.println("2. 회원목록 보기");
System.out.println("3. 회원정보 수정하기");
System.out.println("4. 회원정보 삭제하기");
System.out.println("5. 종료");
int menuId = -1;
try {
String line = br.readLine();
menuId = Integer.parseInt(line);
// 문자열을 정수로 반환
}catch(Exception ex){
ex.printStackTrace();
}
return menuId;
}
public String inputEmail(){
System.out.println("수정할 회원의 email을 입력해주세요.");
String email = "";
try{
email = br.readLine();
}catch(Exception ex){
ex.printStackTrace();
}
return email;
}
public User inputUser(String email){
try{
System.out.println(email + "회원 정보를 수정합니다.");
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 User regUser(){
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){
System.out.println("email 이름 생년월일");
System.out.println("=======================================");
for(int i=0;i<users.size();i++){
// User user = users.get(i);
User user = users.get(i);
System.out.println(user.getEmail());
System.out.println(" ");
System.out.println(user.getName());
System.out.println(" ");
System.out.println(user.getBirthYear());
}
}
}