일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바
- jsp
- 객제지향
- orcle
- javascript
- squery
- 주말이다..
- 코딩
- 프로젝트
- 객제지향프로그래밍
- 데이터베이스
- 웹프로그래밍
- html
- Java
- 프로그래밍
- Project
- 객체지향
- 웹
- sql
- 테이블
- web
- 공부를열심히
- Oracle
- DB
- ERWin
- 오라클
- 공부
- CSS
- 객체지향프로그래밍
- UI
Archives
- Today
- Total
햄찌개
JAVA - 입출력 - 객체입출력 보조 스트림 예제 본문
public class T15_ObjectsStreamTest {
public static void main(String[] args) {
//Member 인스턴스 생성
Member mem1 = new Member("홍길동", 20, "대전");
Member mem2 = new Member("일지매", 30, "경기");
Member mem3 = new Member("이몽룡", 40, "강원");
Member mem4 = new Member("성춘향", 20, "제주");
try {
//객체를 파일에 저장하기
//출력용 스트림 객체 생성
ObjectOutputStream oos = new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream("d:/D_Other/memObj.bin")));
//쓰기 작업
oos.writeObject(mem1);//직렬화
oos.writeObject(mem2);//직렬화
oos.writeObject(mem3);//직렬화
oos.writeObject(mem4);//직렬화
System.out.println("쓰기 작업 완료");
oos.close();
//====================================================
//저장한 객체를 읽어와 출려갛기
//입력용 스트림 객체 생성
ObjectInputStream ois =
new ObjectInputStream(
new BufferedInputStream(
new FileInputStream("d:/D_Other/memObj.bin")));
Object obj = null;
try {
while ((obj =ois.readObject())!=null) {
//읽어온 데이터를 원래의 객체형으로 변환 후 사용한다.
Member mem = (Member)obj;
System.out.println("이름 : "+mem.getName());
System.out.println("나이 : "+mem.getAge());
System.out.println("주소 : "+mem.getAddr());
System.out.println("==================================");
}
ois.close();
} catch (ClassNotFoundException e) {
}
} catch (IOException e) {
//더이상 읽어올 객체가 없으면 예외 발생함
e.printStackTrace();
System.out.println("출력 작업 끝...");
}
}
}
/**
* 회원정보VO
*/
class Member implements Serializable{
//자바는 Serializale 인터페이스를 구현한 객체만 직렬화 할 수 있도록 제한하고 있다..
/**
* transient => 직렬화가 되지 않을 멤버 변수에 지정한다.
* (* static 필드도 직열화가 되지 않는다.)
* 직렬화가 되지 않는 멤버변수는 기본값으로 저장된다.
* (참조변수 : null, 숫자형 변수 :0)
*/
private transient String name ; // transient사용으로 이름은 직렬화에서 뺀다 -> null로 출력
private int age;
private String addr;
public Member(String name, int age, String addr) {
super();
this.name = name;
this.age = age;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
'고급 JAVA' 카테고리의 다른 글
JAVA - 입출력 - image 카피 예제 (0) | 2020.09.29 |
---|---|
JAVA - 입출력 - Serializable인터페이스 (0) | 2020.09.29 |
JAVA - 입출력 - 프린터 기능 제공 보조 스트림 예제 (0) | 2020.09.29 |
JAVA - 입출력 - 기본타입 입출력 보조 스트림 예제 (0) | 2020.09.29 |
JAVA - 입출력 -성능향상을 위한 보조스트림 예제 (0) | 2020.09.29 |