ObjectInputStream,ObjectOutputStream 클래스를 사용 하기 위해서는
대상 클래스를 Serializable 인터페이스를 상속받아야 한다.
//예제 대상클래스
package day14;import java.io.Serializable;
import java.util.Scanner;public class Friend1 implements Serializable{
private String name;
private String jumin;
private String tel;
private String addr;
transient Scanner s; //객체화 시킬때 제외하라는 키워드
public Friend1() {
super();
// TODO Auto-generated constructor stub
s = new Scanner(System.in);
System.out.print("name=");
name=s.nextLine().trim();
System.out.print("jumin=");
jumin=s.nextLine().trim();
System.out.print("tel=");
tel=s.nextLine().trim();
System.out.print("addr=");
addr=s.nextLine().trim();
}
public String getName() {
return name == null ? "" : name.trim();
}
public String getJumin() {
return jumin == null ? "" : jumin.trim();
}
public String getTel() {
return tel == null ? "" : tel.trim();
}
public String getAddr() {
return addr == null ? "" : addr.trim();
}
}
//메인클래스
package day14;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;public class Friend1_Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Friend1_Main fm = new Friend1_Main();
fm.file_use();
}private void file_use() {
// TODO Auto-generated method stub
try {
File dir = new File("src\\day14");
File file = new File(dir,"myfriend.txt");
Scanner key = new Scanner(System.in);
ArrayList<Friend1> arr = new ArrayList<Friend1>();
if(file.exists())
{
ObjectInputStream obj = new ObjectInputStream(new FileInputStream(file));
arr=(ArrayList<Friend1>)obj.readObject();
obj.close();
}else{
file.createNewFile();
}
while(true){
System.out.println("1.친구등록 2.전체보기 3.친구찾기 4.종료");
int num = key.nextInt();
if(num==1){ //친구등록
Friend1 f = new Friend1();
arr.add(f);
System.out.println("친구 1명 등록");
} else if(num==2){ //전체보기
for (Friend1 f : arr){
System.out.println("이름 : "+f.getName());
System.out.println("주민 : "+f.getJumin());
System.out.println("전화 : "+f.getTel());
System.out.println("주소 : "+f.getAddr());
}
} else if(num==3){ //친구찾기
} else if(num==4){ //종료&저장
ObjectOutputStream oos =
new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(arr);
oos.close();
System.exit(0);
} else{ //입력오류
System.out.println("입력오류");
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}}
'소프트웨어 > Java' 카테고리의 다른 글
AWT 세부적인 컴포넌트 연결방법 (0) | 2011.06.03 |
---|---|
AWT 이벤트 처리 (0) | 2011.06.02 |
String 클래스 객체 생성 (0) | 2011.05.25 |
instanceof 연산자 (0) | 2011.05.25 |
[객체 형변환] 상속된 클래스의 오버라이딩 메소드 (0) | 2011.05.25 |