| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바
- 서버
- 쿼리
- 정리
- jsp
- 알고리즘
- java
- 데이터베이스
- web
- 디자인 패턴
- 프론트엔드
- Next.js
- node.js
- oracle
- 백엔드
- 프런트엔드
- 자바스크립트
- 스프링
- 코드 테스트
- 미니정리
- 스프링부트
- 오라클
- spring
- MySQL
- jpa
- JavaScript
- 코드테스트
- 프로그래머스
- SQL
- BACK-END
- Today
- Total
참치코더의 꿈 메모장
Java - 바이트기반 스트림 2021/09/06 본문
스트림(Stream)
자바에서 입출력을 수행하려면, 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면,
두 대상을 연결하고 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라고 정의했다.
* 물이 한쪽 방향으로만 흐르는 것과 같이 스트림은 단방향통신만 가능하기 때문에
하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다.
* 입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림과 출력을 위한 출력스트림
모두 2개의 스트림이 필요하다.
* 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로
데이터를 주고받는다.
바이트기반 스트림
InputStream과 OutputStream은 모든 바이트기반의 스트림의 조상이다.
* 프로그램이 종료될때, 사용하고 닫지 않은 스트림을 JVM이 자동적으로 닫아 주기는 하지만
스트림을 사용해서 모든 작업을 마치고 난 후에는 close( )를 호출해서 반드시 닫아 주어야 한다.
그러나 ByteArrayInputStream과 같이 메모리를 사용하는 스트림과
System.in, System.out과 같은 표준 입출력 스트림은 닫아 주지 않아도 된다.
ByteArrayInputStream과 ByteArrayOutputStream
바이트 배열에 데이터를 입출력 하는데 사용되는 스트림이다.
주로 다른 곳에 입출력하기 전에 데이터를 임시로 바이트배열에 담아서
변환 등의 작업을 하는데 사용된다.
FileInputStream과 FileOutputStream
FileInputStream/FileOutputStream은 파일에 입출력을 하기 위한 스트림이다.
* 실제 프로그래밍에서 많이 사용되는 스트림 중의 하나이다.
| FileInputStream(String name) | 지정된 파일이름(name)을 가진 실제 파일과 연결된 FileInputStream을 생성한다. |
| FileInputStream(File file) | 파일의 이름이 String이 아닌 File인스턴스로 지정해주어야 하는 점을 제외하고 FileInputStream(String name)와 같다 |
| FileInputStream(FileDescriptor fdObj) | 파일 디스크립터로 FileInputStream을 생성한다. |
| FileOutputStream(String name, boolean append) | 지정된 파일이름을 가진 실제 파일과의 연결된 FileOutputStream을 생성한다 |
| FileOutputStream(String name, boolean append) | 지정된 파일이름을 가진 실제 파일과 연결된 FileOutputStream을 생성한다. 두번째 인자인 append를 true로 하면, 출력 시 기존의 파일내용의 마지막에 덧붙인다. false면 기존의 파일내용을 덮어쓰게 된다. |
| FileOutputStream(File file) | 파일의 이름을 String이 아닌 File인스턴스로 지정해주어야 하는 점을 제외하고 FileOutputStream(String name)과 같다 |
| FileOutputStream(File file, boolean append) | 파일의 이름을 String이 아닌 File인스턴스로 지정해주어야 하는 점을 제외하고 FileOutputStream(String name, boolean append)과 같다 |
| FileOutputStream(FileDescriptor fdObj) | 파일 디스크립터(fdObj)로 FileOutputStream을 생성한다 |
'JAVA' 카테고리의 다른 글
| 2021-09-18 InetAddress, URL, URLConnection - 네트워크 (0) | 2021.09.18 |
|---|---|
| 바이트기반의 보조스트림 - java /2021/09/08 (0) | 2021.09.08 |
| 메타 애너테이션(Annotation) - Java - 2021/08/31 (0) | 2021.08.31 |
| 표준 애너테이션(Annotation) - Java - 2021/08/30 (0) | 2021.08.30 |
| 2021/08/27 Java - 열거형(enums) (0) | 2021.08.27 |