Java/기본 (39) 썸네일형 리스트형 [Java] IO스트림 사용하기 - 객체 직렬화(Serialize) 직렬화란? 직렬화(Serialization)란 한마디로 코드 변환작업이다. 좀더 상세히 말하자면 객체를 바이트 코드로 바꾸는 작업을 의미한다. 직렬화를 하는 이유 직렬화는, 우리가 컴퓨터로 작업할 때 zip 파일을 사용하는 것과 비슷하다고 볼 수 있다. 그냥 폴더자체는 이메일에 첨부하거나 온라인에 업로드하는게 쉽지 않다. 파일이 깨지는 경우도 있다. 하지만 zip 파일을 사용하면 안전하게 파일을 첨부하거나 업로드할 수 있다. 필요할 때 가져다쓰는 것도 쉽다. 자바는 객체를 중심으로 코드가 이루어진다. 근데 객체는 문자가 아니라서 출력하려면 바로 출력이 안되고 스트림을 활용해 출력해야 한다. 대표적으로 바이트스트림 등을 이용해 출력이 가능하다. 직렬화란 바로 객체의 데이터를 연속적인 바이트 코드로 변경하는.. [Java] IO스트림 사용하기 - 스트림 연결하기(Stream chaining) 스트림 연결이란 입력스트림+ 입력스트림+ 입력스트림 출력스트림+ 출력스트림+ 출력스트림 이런 식으로 스트림을 연결하는 것을 말한다. 수행기능 향상이 목적이다. 버퍼란 버퍼(buffer)는 데이터를 전송시키기 전에 데이터가 일시적으로 보관하는 메모리 영역이다. 버퍼링(buffering)은 버퍼를 채우는 활동을 의미하는데, 버퍼를 사용하면 스트림을 서로 연결해 입출력 수행능력을 향상시킬 수 있다. 버퍼를 사용하면 수행능력이 향상되는 이유 버퍼를 사용하면 '논리적' 데이터 덩어리를 모아서 하나의 '물리적' 연산으로 처리한다. 버퍼를 사용하지 않는 경우 프로그램이 read, write 호출 호출할 때마다 데이터 read, write 수행 수행 횟수 많음 버퍼를 사용하는 경우 프로그램이 read, write 호출.. [Java] IO스트림 사용하기 - InputStream, OutputStream IO 스트림은 데이터를 입력(input)과 출력(output)에 대한 내용이다. java.io 패키지에서 제공되는 클래스를 활용해 코드를 작성할 수 있다. 스트림은 일방향의 특징을 가지는 데이터 흐름이다. 역방향으로 데이터가 전송될 수 없기 때문에 input, output 을 위한 코드가 따로 존재하게 된다. 입출력의 단위는 크게 바이트, 문자로 나뉜다. 바이트는 이미지, 오디오, 동영상 등의 바이너리 파일이 해당된다. 크기는 1byte 문자는 한글, 한자 등이 해당된다. 크기는 2byte 입력 출력 바이트 최상위 클래스 InputStream OutputStream 하위 클래스 AudioInputStream ByteArrayInputStream FileInputStream FilterInputStream.. [Java] 스트림(Stream) 익히기 스트림이란 스트림은 컬렉션에 저장된 요소를 하나식 꺼내서 람다식으로 처리하는 반복자이다. 스트림을 사용하기 위해서는 람다식에 대한 지식이 필요하며 컬렉션, 스레드에 대한 이해도 필요하다. java 에서 반복자 대표주자는 Iterator(java.util) 이다. 스트림은 java.util.stream 패키지에 속한 인터페이스이다. 스트림과 컬렉션은 집합에 대한 클래스이다. 컬렉션이 요소를 할당하고 관리하는데 목적이 있다면, 스트림은 요소를 검색하거나 값을 처리하는데 목적이 있다. 스트림의 특징 람다식으로 처리 -> 코드가 간결해짐 내부 반복자 사용 -> 병렬처리가 쉽다 중간처리 및 최종처리(집계) 결과 관리가 쉽다 참고1) 외부반복자 vs 내부반복자 구분 내용 외부반복자(external iterator).. 이전 1 2 3 4 5 ··· 10 다음