InputStream - 입력스트림
1. java.io.InputStream
- 자바에서 제공하는 기본 입력 클래스이다.
- 바이트 데이터를 읽는데 사용한다.
- 서브 클래스로 인스턴스를 작성해도 InputStream으로 반환된다(다형성)
1) FileInputStream : 파일로부터 데이터를 읽는데 사용
2) TelnetInputStream : 네트워크 연결로 부터 읽음
3) ByteArrayInputstream : 바이트 배열로 부터 읽음
2. read()
- InputStream의 기본 메소드
- 단일바이트를 읽으며 0~255 사이의 정수 타입을 반환한다.
- 스트림이 끝에 도달하면 -1을 반환 한다.
- 추상 메소드로 선언되어 있어 서브클래스(ByteArrayInput....등)에서 수정할 필요가 있다.
- int 타입을 반환한다.
- 1byte 씩 읽는 것은 매우 비효율적이다 그래서 배열로 한번에 반환하는 read() 함수가 있다.
3. read(byte[] input), read(byte[] input, int offset, int length)
- read(byte[] input) : 배열의 크기만큼 읽는다.
- read(byte[] input, int offset, int length) : offset 부터 length까지 읽는다.
- 스트림의 끝에 도달하면 -1을 반환한다.
- 위 소스는 네트워크 스트림에서 자주사용된다.(실제 읽고자 하는 바이트의 크기가 보장되어야 하는 상황에서 사용)
'Back-End > Java_2' 카테고리의 다른 글
[Java] Java8 - 함수형인터페이스 그리고 람다의 활용 (0) | 2018.06.16 |
---|---|
[Java] Java8 - 동작파라미터화 (predicate 활용) (0) | 2018.06.10 |
[Java] Future, Callable, Executor를 이용한 Thread (0) | 2017.10.15 |
[Java] Thread에서 데이터 반환(폴링, 콜백) - Receive data by using thread polling, callback (0) | 2017.10.15 |
[Java] Thread 만들기 - To create Threads (0) | 2017.10.15 |