728x90
반응형
■ member
□ Member.java
package member;
public class Member {
private String name;
private String tel;
public Member(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
public void disp() {
System.out.println(name + "님의 전화번호는 " + tel + "번입니다.");
}
}
□ MemberPro.java
package member;
public interface MemberPro {
public void input();
public void view();
public void delete();
public void edit();
public void exit();
}
□ MemberProImpl.java
package member;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/* 1. 입력 2. 출력 3. 삭제 4. 수정 5. 종료
* 입력시, 이름과 전화번호를 입력받아 저장
* 출력시, 이름과 전화번호를 화면에 보여준다.
* 삭제시, 이름을 입력받아 해당하는 사람을 지워준다. 단, 없으면 없다고 알려준다.
* 수정시, 이름을 입력받아 해당하는 사람의 전화번호를 수정한다. 단 없으면 없다고 알려준다.
* 종료시, 프로그램을 종료한다.
*/
public class MemberProImpl implements MemberPro {
private List<Member> list = null;
private Scanner in = null;
public MemberProImpl() {
list = new ArrayList<>();
in = new Scanner(System.in);
}
@Override
public void input() {
System.out.print("이름을 입력하세요 : ");
String name = in.next();
System.out.print("전화번호를 입력하세요 : ");
String tel = in.next();
Member mb = new Member(name, tel);
list.add(mb);
}
@Override
public void view() {
for(Member mb : list) {
mb.disp();
}
}
@Override
public void delete() {
System.out.print("삭제할 회원의 이름을 입력하세요 : ");
String name = in.next();
for(Member mb : list) {
if(name.equals(mb.getName())) {
System.out.println(name + "님을 삭제하겠습니다.");
list.remove(mb);
return;
}
}
System.out.println(name + "님은 저회 회원이 아닙니다.");
}
@Override
public void edit() {
System.out.print("수정할 회원의 이름을 입력하세요 : ");
String name = in.next();
for(Member mb : list) {
if(name.equals(mb.getName())) {
System.out.println("현재 전화번호는" + mb.getTel() + "번입니다.");
System.out.print("수정할 번호를 입력 : ");
String tel = in.next();
mb.setTel(tel);
return;
}
}
System.out.println(name + "님은 저희 회원이 아닙니다.");
}
@Override
public void exit() {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
}
□ MemberMain.java
package member;
import java.util.Scanner;
public class MemberMain {
public static void main(String[] args) {
MemberPro pro = new MemberProImpl();
Scanner in = new Scanner(System.in);
while(true) {
System.out.println("1. 입력 2. 출력 3. 삭제 4. 수정 5. 종료 : ");
int select = in.nextInt();
switch(select) {
case 1: pro.input(); break;
case 2: pro.view(); break;
case 3: pro.delete(); break;
case 4: pro.edit(); break;
case 5: pro.exit(); break;
default:
System.out.println("잘못 입력하셨습니다. 다시 입력해주세요");
}
}
}
}
■ fileMemebr
□ Member.java
package fileMember;
public class Member {
private String name;
private String tel;
public Member(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
public void disp() {
System.out.println(name + "님의 전화번호는 " + tel + "번입니다.");
}
}
□ MemberPro.java
package fileMember;
public interface MemberPro {
public void input();
public void view();
public void delete();
public void edit();
public void exit();
public void save();
public void load();
}
□ MemberProImpl.java
package fileMember;
import java.io.*;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Scanner;
public class MemberProImpl implements MemberPro {
private Hashtable<String, Member> ht = null;
private Scanner in = null;
private File file = null;
public MemberProImpl() {
ht = new Hashtable<>();
in = new Scanner(System.in);
File dir = new File("C:\\myProject\\myJAVA\\testJava");
file = new File(dir, "data.txt");
}
@Override
public void input() {
System.out.print("이름을 입력하세요 : ");
String name = in.next();
System.out.print("전화번호를 입력하세요 : ");
String tel = in.next();
Member mb = new Member(name, tel);
ht.put(name, mb);
}
@Override
public void view() {
Enumeration<String> enu = ht.keys();
while(enu.hasMoreElements()) {
String key = enu.nextElement();
Member mb = ht.get(key);
mb.disp();
}
}
@Override
public void delete() {
System.out.print("삭제할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
ht.remove(name);
System.out.println(name + "님을 삭제하였습니다.");
} else {
System.out.println(name + "님은 저회 회원이 아닙니다.");
}
}
@Override
public void edit() {
System.out.print("수정할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
Member mb = ht.get(name);
System.out.println("현재 전화번호는" + mb.getTel() + "번입니다.");
System.out.print("수정할 번호를 입력 : ");
String tel = in.next();
mb.setTel(tel);
} else {
System.out.println(name + "님은 저희 회원이 아닙니다.");
}
}
@Override
public void exit() {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
@Override
public void save() {
// 1byte
FileOutputStream fos = null;
BufferedOutputStream bos = null;
DataOutputStream dos = null;
try {
fos = new FileOutputStream(file, true);
bos = new BufferedOutputStream(fos);
dos = new DataOutputStream(bos);
Enumeration<String> enu = ht.keys();
while(enu.hasMoreElements()) {
String key = enu.nextElement();
Member mb = ht.get(key);
String data = mb.getName() + "@" + mb.getTel();
dos.writeUTF(data);
}
dos.close();
} catch(IOException e) {
System.out.println("파일 저장 중 오류 발생!");
e.printStackTrace();
}
}
@Override
public void load() {
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;
ht.clear();
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
while(true) {
String data = dis.readUTF();
String[] data2 = data.split("@");
Member mb = new Member(data2[0], data2[1]);
ht.put(data2[0], mb);
}
} catch(EOFException e) { // 데이터가 없을 때 나타나는 Exception
System.out.println("파일업로드 끝");
} catch(IOException e) {
System.out.println("파일업로드시 문제 오류 발생!");
}
}
}
□ HashMemberMain.java
package fileMember;
import java.util.Scanner;
public class HashMemberMain {
public static void main(String[] args) {
MemberPro pro = new MemberProImpl();
Scanner in = new Scanner(System.in);
while(true) {
System.out.println("1. 입력 2. 출력 3. 삭제 4. 수정 5. 저장 6. 로드 7. 종료 : ");
int select = in.nextInt();
switch(select) {
case 1: pro.input(); break;
case 2: pro.view(); break;
case 3: pro.delete(); break;
case 4: pro.edit(); break;
case 5: pro.save(); break;
case 6: pro.load(); break;
case 7: pro.exit(); break;
default:
System.out.println("잘못 입력하셨습니다. 다시 입력해주세요");
}
}
}
}
■ fileMemebr2
□ Member.java
package fileMember2;
public class Member {
private String name;
private String tel;
public Member(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
public void disp() {
System.out.println(name + "님의 전화번호는 " + tel + "번입니다.");
}
}
□ MemberPro.java
package fileMember2;
public interface MemberPro {
public void input();
public void view();
public void delete();
public void edit();
public void exit();
public void save();
public void load();
}
□ MemberProImpl.java
package fileMember2;
import java.io.*;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Scanner;
public class MemberProImpl implements MemberPro {
private Hashtable<String, Member> ht = null;
private Scanner in = null;
private File file = null;
public MemberProImpl() {
ht = new Hashtable<>();
in = new Scanner(System.in);
File dir = new File("C:\\myProject\\myJAVA\\testJava");
file = new File(dir, "data.txt");
}
@Override
public void input() {
System.out.print("이름을 입력하세요 : ");
String name = in.next();
System.out.print("전화번호를 입력하세요 : ");
String tel = in.next();
Member mb = new Member(name, tel);
ht.put(name, mb);
}
@Override
public void view() {
Enumeration<String> enu = ht.keys();
while(enu.hasMoreElements()) {
String key = enu.nextElement();
Member mb = ht.get(key);
mb.disp();
}
}
@Override
public void delete() {
System.out.print("삭제할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
ht.remove(name);
System.out.println(name + "님을 삭제하였습니다.");
} else {
System.out.println(name + "님은 저회 회원이 아닙니다.");
}
}
@Override
public void edit() {
System.out.print("수정할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
Member mb = ht.get(name);
System.out.println("현재 전화번호는" + mb.getTel() + "번입니다.");
System.out.print("수정할 번호를 입력 : ");
String tel = in.next();
mb.setTel(tel);
} else {
System.out.println(name + "님은 저희 회원이 아닙니다.");
}
}
@Override
public void exit() {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
@Override
public void save() {
FileWriter fw = null;
BufferedWriter bw = null;
PrintWriter pw = null;
try {
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
pw = new PrintWriter(bw);
Enumeration<String> enu = ht.keys();
while(enu.hasMoreElements()) {
String key = enu.nextElement();
Member mb = ht.get(key);
pw.print(mb.getName() + "@" + mb.getTel());
pw.flush();
}
pw.close();
} catch(IOException e) {
System.out.println("파일 저장 중 오류 발생!");
e.printStackTrace();
}
}
@Override
public void load() {
FileReader fr = null;
BufferedReader br = null;
ht.clear();
try {
fr = new FileReader(file);
br = new BufferedReader(fr);
while(true) {
String data = br.readLine();
if(data == null) break; // EOFException 필요없음.
String[] data2 = data.split("@");
Member mb = new Member(data2[0], data2[1]);
ht.put(data2[0], mb);
}
} catch(IOException e) {
System.out.println("파일업로드시 문제 오류 발생!");
}
}
}
□ HashMemberMain.java
package fileMember2;
import java.util.Scanner;
public class HashMemberMain {
public static void main(String[] args) {
MemberPro pro = new MemberProImpl();
Scanner in = new Scanner(System.in);
while(true) {
System.out.println("1. 입력 2. 출력 3. 삭제 4. 수정 5. 저장 6. 로드 7. 종료 : ");
int select = in.nextInt();
switch(select) {
case 1: pro.input(); break;
case 2: pro.view(); break;
case 3: pro.delete(); break;
case 4: pro.edit(); break;
case 5: pro.save(); break;
case 6: pro.load(); break;
case 7: pro.exit(); break;
default:
System.out.println("잘못 입력하셨습니다. 다시 입력해주세요");
}
}
}
}
■ fileMemebr3
□ Member.java
package fileMember3;
import java.io.Serializable;
public class Member implements Serializable{
private String name;
private String tel;
public Member(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
public void disp() {
System.out.println(name + "님의 전화번호는 " + tel + "번입니다.");
}
}
□ MemberPro.java
package fileMember3;
public interface MemberPro {
public void input();
public void view();
public void delete();
public void edit();
public void exit();
public void save();
public void load();
}
□ MemberProImpl.java
package fileMember3;
import java.io.*;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Scanner;
public class MemberProImpl implements MemberPro {
private Hashtable<String, Member> ht = null;
private Scanner in = null;
private File file = null;
public MemberProImpl() {
ht = new Hashtable<>();
in = new Scanner(System.in);
File dir = new File("C:\\myProject\\myJAVA\\testJava");
file = new File(dir, "data.txt");
}
@Override
public void input() {
System.out.print("이름을 입력하세요 : ");
String name = in.next();
System.out.print("전화번호를 입력하세요 : ");
String tel = in.next();
Member mb = new Member(name, tel);
ht.put(name, mb);
}
@Override
public void view() {
Enumeration<String> enu = ht.keys();
while(enu.hasMoreElements()) {
String key = enu.nextElement();
Member mb = ht.get(key);
mb.disp();
}
}
@Override
public void delete() {
System.out.print("삭제할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
ht.remove(name);
System.out.println(name + "님을 삭제하였습니다.");
} else {
System.out.println(name + "님은 저회 회원이 아닙니다.");
}
}
@Override
public void edit() {
System.out.print("수정할 회원의 이름을 입력하세요 : ");
String name = in.next();
if(ht.containsKey(name)) {
Member mb = ht.get(name);
System.out.println("현재 전화번호는" + mb.getTel() + "번입니다.");
System.out.print("수정할 번호를 입력 : ");
String tel = in.next();
mb.setTel(tel);
} else {
System.out.println(name + "님은 저희 회원이 아닙니다.");
}
}
@Override
public void exit() {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
@Override
public void save() {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
oos = new ObjectOutputStream(bos);
oos.writeObject(ht);
oos.close();
} catch(IOException e) {
System.out.println("파일 저장 중 오류 발생!");
e.printStackTrace();
}
}
@Override
public void load() {
FileInputStream fis = null;
BufferedInputStream bis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
ois = new ObjectInputStream(bis);
ht = (Hashtable)ois.readObject();
} catch(ClassNotFoundException e) {
System.out.println("해당 클래스가 존재하지 않습니다.");
} catch(Exception e) {
System.out.println("파일업로드시 문제 오류 발생!");
}
}
}
728x90
반응형
'IT&코딩 > 자바 프로젝트' 카테고리의 다른 글
자바 프로젝트 6일차 - Servlet (testServlet) (0) | 2023.01.26 |
---|---|
자바 프로젝트 5일차 - JSP 복습 3 (jspMember) (0) | 2023.01.24 |
자바 프로젝트 4일차 - JSP 복습 2 (jspBoard) (2) | 2023.01.22 |
자바 프로젝트 3일차 - JSP 복습 1 (2) | 2023.01.21 |
자바 프로젝트 1일차 - Java 복습 1 (0) | 2023.01.14 |