- Today
- Total
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- pl/sql
- Oracle
- 프로시저
- Hostinger
- 자바스크립트
- sql
- dbeaver
- PLSQL
- spring boot
- PROCEDURE
- 엘리멘터
- 오류해결
- iframe
- 워드프레스
- 함수
- 트러블슈팅
- 환경세팅
- 클론코딩
- JSP
- wordpress
- 워스프레스
- 배열
- 오라클
- 이클립스
- function
- javascript
- 문제해결
Archives
개발 공부중
InputStream/OutputStream를 이용해서 화면 저장하기 본문
- 객체 직렬화 (object serialization)
- Java.io.Serializable 인터페이스
- 실행 시간에 유지하고 있던 객체 내부의 정보과 객체 자신의 정보를 어디엔가 기록해 놓고 나중에 필요한 시기에 다시 볼 수 있는 방법을 제공하는 것
- 객체의 내용을 파일 혹은 네트워크를 통하여 byte stream으로 입출력한다.
- 객체를 저장장치(파일, DB)등에 저장, 검색, 로딩할 수 있도록 함으로서 객체의 영속성을 제공한다.
- java.lang.Object : 직렬화 x, 객체를 스트림으로 보낼 수 없다
- java.lang.String: 직렬화 o, 객체를 스트림으로 보낼 수 있다.
- 직렬화를 구현한 창을 스트림으로 다른 컴퓨터에 보내는 것이 가능하다.
- static 필드, transient 필드는 사용불가
- 직렬화의 과정은 인스턴스 변수의 값을 저장하는 일으로, 인스턴스 변수가 다른 객체를 참조하는 참조형 변수일 경우 그 변수가 가리키는 객체 또한 직렬화 되어야한다.
- InputStream : 객체를 쓸 때
- OutputStream : 객체를 읽을 때
AwtTest.java
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
public class AwtTest extends Frame {
TextArea view = new TextArea();
//윈도우가 생성될 때 가운데 위치시킴
public AwtTest() {
add(view, "Center");
}
public static void main(String[] args) {
Frame f = null;
try {
//파일이 있으면 객체직렬화로 저장된 윈도우를 읽어옴
FileInputStream inFile = new FileInputStream("AwtTest.dat"); // 최초 실행하면 파일이 없으니까 catch문으로 빠짐
ObjectInput in = new ObjectInputStream(inFile);
f = (Frame)in.readObject();
}catch(IOException ioe) {
//파일이 없다면(최초실행되는 경우) 500, 300짜리 윈도우 생성
f = new AwtTest();
f.setSize(500,300);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
//윈도우 종료 이벤트 핸들러 처리
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
try {
FileOutputStream outFile = new FileOutputStream("AwtTest.dat");
ObjectOutput out = new ObjectOutputStream(outFile);
out.writeObject(we.getWindow());
out.close();
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
f.setVisible(true); // 윈도우 화면을 보이게함
}
}
아래는 실행 결과화면
창을 닫으면 AwtTest.dat 파일이 생김
열어보면 입력한 내용이 저장되어 있는 걸 확인할 수 있음
AwtTest.java 파일을 다시 실행하면 창을 닫은 그 상태로 뜨는 걸 확인할 수 있음
'JAVA' 카테고리의 다른 글
[JAVA] 쿼리스트링 활용하기 (GET/POST) (0) | 2023.10.16 |
---|---|
[JAVA] 이클립스 디버깅 방법 (단축키) (0) | 2023.08.31 |
[TIL] Vector와 ArrayList (1) | 2022.12.22 |
[TIL] 문제연습 (Math.random(), 한 줄에 10개씩 출력하기) (0) | 2022.12.15 |
[TIL] 문제연습 (0) | 2022.12.14 |
Comments