java/ㄴ CHAPTER 15. 입출력
-
CHAPTER 15. (5) 직렬화란?java/ㄴ CHAPTER 15. 입출력 2020. 4. 23. 16:21
직렬화Serialization - 객체를 데이터 스트림으로 만드는 것 => 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것 (객체의 모든 인스턴스 변수를) ☆ 객체 저장 => 객체의 모든 인스턴스 변수를 저장하는 것 (클래스변수, 메서드 포함X) ㄴ왜 메서드는 포함하지 않는가? = 인스턴스 변수는 인스턴스마다 다른 값을 가질 수 있기 때문에 별도의 메모리 공간 필요, but 메서드는 변하는 것이 아니라서 메모리 낭비 필요 X ObjectInputStream / ObjectOutputStream - 직렬화(스트림에 객체를 출력)에는 ObjectOutputStream 사용 ㄴ OutputStream 직접 상속받지만, oos는 기반 스트림을 필요로 하는 보조 스트림 => 객체 생성 시..
-
CHAPTER 15. (4) 표준 입출력이란? (File 포함)java/ㄴ CHAPTER 15. 입출력 2020. 4. 23. 16:20
표준 입출력 - 콘솔을 통한 데이터 입력, 콘솔로의 데이터 출력 의미 - 3가지 입출력 스트림 제공 ㄴ System.in : 콘솔로부터 데이터를 입력받는데 사용 (표준 출력) ㄴ System.out : 콘솔로 데이터를 출력하는데 사용 (표준 입력) ㄴ System.err : 콘솔로 데이터를 출력하는데 사용 (표준 입력) (자바 어플리케이션 실행과 동시에 자동적으로 생성 : 개발자 별도 스트림 생성하지 않고 사용 가능) in, out ,err은 System클래스에 선언된 클래스변수(static변수) ㄴ 버퍼를 이용하는 BufferedIn(Out)putStream 인스턴스 사용 JDK 1.5부터 Scanner 클래스 제공 => System.in으로부터 데이터 입력받아 작업하는 것이 편리해짐 File - 기본..
-
CHAPTER 15. (3) 문자 기반 스트림이란? (문자 기반 보조 스트림 포함)java/ㄴ CHAPTER 15. 입출력 2020. 4. 23. 16:19
문자기반 스트림 (Reader, Writer) - 문자데이터 입출력 시 사용하는 스트림 - C언어와 달리 자바는 한 문자(char형)이 1byte 가 아니라 2byte => 문자 데이터 입력 시 바이트 기반 스트림 대신 문자 스트림 이용 ex. FileInputStream => FileReader FileOutputStream => FileWriter - 여러 종류의 인코딩과 자바에서 사용하는 유니코드 간의 변환을 자동적으로 처리해줌 ex) Reader : 특정 인코딩 읽어서 유니코드로 변환 Writer : 유니코드를 특정 인코딩으로 변환하여 저장 Reader - 문자기반 스트림의 조상 Reader, Writer - byte배열 대신 char 배열 사용 FileReader / FileWriter - 파일..
-
CHAPTER 15. (2) 바이트 스트림이란? (바이트 기반 보조 스트림 포함)java/ㄴ CHAPTER 15. 입출력 2020. 4. 23. 16:18
바이트 스트림 (InputStream, OutputStream) - 입출력 단위 1byte - 바이트 단위로 데이터 전송 - java.io 패키지 통해 클래스 제공 - 입출력 대상이 달라져도 동일한 방법으로 입출력 가능 ex) InputStream OutputStream ㄴ 모든 바이트 기반 스트림의 조상 바이트 기반 보조 스트림 (BufferedInputStream, BufferedOutputStream) - 스트림 기능을 보완하기 위한 보조 스트림 - 데이터 입출력 불가, but 스트림 기능 향상, 기능 추가 등 가능 - 스트림 생성 후 이를 이용해서 보조 스트림 생성 - 쓰고 안쓰고의 성능 차이 상당 (대부분 경우 보조 스트림 사용) ex) FilterInputStream FilterOutputSt..