JAVA(247)
-
[Java][I/O] 직렬화(Serialization)
1. 직렬화란 무엇인가? 직렬화(Serialization)란 객체를 데이터 스트림으로 만드는 것을 뜻합니다. 즉, 객체에 저장된 데이터를 스트림에 쓰기(write) 위해 연속적인(serial) 데이터로 변환하는 것을 의미합니다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 역직렬화(deserialization)이라고 합니다. 객체의 직렬화와 역직렬화 객체의 정의 및 특징 클래스에 정의된 인스턴스 변수의 집합 객체에는 클래스 변수나 메서드가 포함되지 않음 객체는 오직 인스턴스변수들로만 구성되어 있음 2. ObjectInputStream, ObjectOutputStream 클래스의 정의된 인스턴스 변수가 단순한 기본형일때는 직렬화하여 저장하는 일이 간단하지만 인스턴스 변수의 타입이 참조형일때는 ..
2022.06.28 -
[Java][I/O] 표준입출력과 File
1. 표준입출력 - System.in, System.out, System.err 표준입출력은 콘솔(console, 도스창)을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미합니다. 자바에서 제공하는 표준 입출력 스트림 System.in : 콘솔로부터 데이터를 입력받는데 사용 System.out : 콘솔로 데이터를 출발하는데 사용 System.err : 콘솔로 데이터를 출력하는데 사용 표준 입출력 스트림 클래스 타입 System.in : InputStream System.out : PrintStream System.err : PrintStream 2. 표준입출력의 대상변경 - setOut(), setErr(), setIn() System.in, System.out, System.err의 입출력 대상은 기본..
2022.06.28 -
[Java][I/O] 문자기반의 보조스트림
1. BufferedReader & BufferedWriter BufferedReader / BufferedWriter는 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 수행합니다. @Order(1) @Test void bufferedReaderTest() { try(FileReader fr = new FileReader("./src/ch15/ex_10_BufferedReader_BufferedWriter/BufferedReaderWriterTest.java"); BufferedReader br = new BufferedReader(fr)){ String line = ""; for(int i = 1; (line = br.readLine()) != null; i++) { // ";"를 포함한..
2022.06.27 -
[Java][I/O] 문자기반 스트림 Reader와 Writer
1. Reader와 Writer 바이트기반 스트림의 조상이 InputStream / OutputStream인 것과 같이 문자기반의 스트림에서는 Reader / Writer가 같은 역할을 수행합니다. Reader / Writer는 byte 배열 대신 char 배열을 사용합니다. Reader의 메서드 메서드 설명 abstract void close() 입력스트림을 닫음으로써 사용하고 있던 자원을 반환 void mark(int readlimit) 현재위치를 표시해놓는다. 후에 reset()에 의해서 표시해 놓은 위치로 다시 돌아갈 수 있음 boolean markSupported() mark()와 reset()을 지원하는지를 알려줌 int read() 입력소스로부터 하나의 문자를 읽어온다. char의 범위인 0..
2022.06.23 -
[Java][I/O] 바이트기반의 보조 스트림
1. FilterInputStream / FilterOutputStream FilterInputStream / FilterOutputStream은 InputStream / OutputStream의 자손이면서 모든 보조 스트림의 조상입니다. FilterInputStream의 자손 : BufferedInputStream, DataInputStream, LineNumberInputStream, PushBackInputStream 등 FilterOutputStream의 자손 : BufferedOutputStream, DataOutputStream, PrintStream 등 FilterInputStream / FilterOutputStream의 모든 메서드는 단순히 기반 스트림(InputStream / Outpu..
2022.06.23 -
[Java][I/O] 바이트기반 스트림, InputStream & OutputStream
1. InputStream과 OutputStream InputStream과 OutputStream은 모든 바이트기반의 스트림의 조상입니다. 바이트기반 스트림 입력 클래스(InputStream) : ByteArrayInputStream, FileInputStream, FilterInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream 바이트기반 스트림 출력 클래스(OutputStream) : ByteArrayOutputStream, FileOutputStream, FilterOutputStream, PipedOuptutStream 2. ByteArrayInputStream과 ByteArrayOutputStream ByteArra..
2022.06.22