일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Infra
- Buffered channel
- GoF
- golang
- Helm V3
- Logrus
- 윈도우키보드
- 배포 파이프라인
- 대규모 시스템 설계
- 티스토리챌린지
- go
- 디자인패턴
- apollo router
- Kubernetes
- System Design
- body size
- 배포 프로세스
- Intellij
- 오블완
- Golines
- goland
- gitops
- 컴포지트패턴
- AWS
- intellij ide
- http 413
- elasticsearch
- UnBuffered channel
- notification system
- GoF 디자인패턴
Archives
- Today
- Total
Fall in IT.
자바 입출력(I/O )에 대하여 본문
안녕하세요.
오늘은 자바에서 입출력, 즉 I/O에 대해서 용어정리부터 사용방법에 대해서 간단하게 정리해보도록 하겠습니다.
입출력이란?
- I/O란, input / output의 약자로 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 의미 합니다.
스트림이란?
- 자바에서 입출력과 같이 데이터를 주고 받는데 사용되는 연결통로를 의미 합니다.
- 스트림은 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없기 때문에, 입출력을 위해서는 두개의 스트림이 필요합니다.
- 바이트기반 스트림입니다. (스트림은 바이트 단위로 데이터를 전송하며 입출력 대상에 따라 여러 종류의 스트림이 있습니다.)
스트림 종류
- FileInputStream/FileOutputStream, ByteArrayInputStream/ByteArrayOutputStream, PipedInputStream/PipedOutputStream 등
- 어떤 대상에 대해서 작업을 할 것인지 정하고 그에 맞는 스트림을 선택해서 사용하면 됩니다.
- 여러종류의 스트림들은 모두 InputStream, OutputStream의 자손들이며, 각각 읽고 쓰는데 필요한 추상메서드(read(), write())를 구현해 놓은 것입니다.
보조스트림이란?
- 스트림으로 단독으로 쓰일 수 없고, 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있는 말그대로 보조스트림입니다.
- 스트림을 먼저 생성한 다음에 생성한 인스턴스를 생성하여 보조스트림을 생성해 사용합니다.
example)
FileInputStream fileInputStream = new FileInputStream("file.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
bufferedInputStream.read();
※ 보조스트림을 사용했을때, 성능차이가 상당하기 때문에 대부분 사용합니다.
보조스트림의 종류
- BufferedInputStream : 버퍼를 이용한 입출력 성능향상
- ObjectInputStream : 데이터를 객체단위로 읽고 쓰는데 사용. 주로 파일을 이용하여 객체를 직렬화 하는데 사용합니다.
- DataInputStream
- LineNumberInputStream
- DigestInputStream
- PushbackInputStream 등
보조스트림 역시 모두 InputStream, OutputStream의 자손들입니다.
문자기반 스트림이란?
- 문자데이터를 입출력할때 사용하는 문자기반 스트림을 의미합니다.
- 자바는 C언어와 달리 문자를 의미하는 char형이 2byte이기 때문에 바이트 스트림으로 문자를 처리하는데 어려움이있습니다.
- 따라서, 이를 보완하기위해 문자기반의 스트림이 제공됩니다.
- 바이트기반 스트림과 이름만 조금 다를 뿐 활용방법은 거의 같습니다.
- InputStream = Reader, OutputStream = Writer
문자스트림의 종류
'기타' 카테고리의 다른 글
ES6 기본 맛보기 (0) | 2017.01.12 |
---|---|
Git 기초 명령어 (0) | 2016.12.23 |
html에서 label 태그 사용하는 방법 (4) | 2016.11.02 |
인터프리터언어와 컴파일언어에 대해서 (0) | 2016.10.09 |
MAC에서 마크다운언어를 html로 변환하는 방법 (0) | 2016.09.29 |
Comments