IT/Programming / / 2023. 4. 20. 13:10

[JAVA] ObjectOutputStream,InputStream 사용 예제

반응형
package dayday18;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;

/*
 * 객체를 파일로 저장할 때  : ObjectOutputStream
 * 파일에 저장된 객체를 읽어들일 때 : ObjectInputStream 
 * 
 */
class Person implements Serializable{//Serializable : 객체 직렬화 가능한(스트림으로 전송할 수 있는)
	String name;
	int age;
	Person(String n , int a){
		name = n;
		age = a;
	}
	
}
public class test04 {
	public static void main(String[] args) {
		Person p = new Person("피카츄",10);
		//피카츄 정보를 info.per에 저장 
		
		ObjectOutputStream out;
		
		//ObjectOutputStream 보조 스트림의 일종 
		//보조스트림 - 기존의 스트림을 빠르게, 편하게 읽어 들이기 위한 스트림, 기존스트림이 있어야 사용 가능
		
		try {
			FileOutputStream output = new FileOutputStream("info.per"); //txt로 하면?? 그대로 피카츄와 10이 저장되어 있는것이 아님, 2진data로 header+객체정보등..
			//ы sr dayday18.Persona#?$? I ageL namet Ljava/lang/String;xp   t 	?쇱뭅痢?
			//output이라는 주 스트림 생성
			
			out = new ObjectOutputStream(output);
			//out 스트림을 output스트림의 보조스트림으로 지정
			
			out.writeObject(p);//NotSerializableException-직렬화 하여 객체를 전달해야함
			// + 객체에 implements Serializable 추가
			
			
			
			output.close();
			out.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
				
		
		
		
	}
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유