파일을 전송하거나 전송받아서 처리해야 하는 경우가 있다.
전송이야 sftp로 전송하면 되겠지만, 그 후에 db에 넣든 바로 출력하든 별도 전처리가 들어간다.
이걸 어떻게 할 것인가가 핵심인데, Java에선 InputStream 과 OutputStream같은 입출력Stream 기능을 활용하면 된다.
간단히 말해 byte 단위로 파일을 읽어들여 데이터를 읽어들이고 전송하는데 사용한다고 보면 된다.
https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html
InputStream (Java Platform SE 8 )
Reads some number of bytes from the input stream and stores them into the buffer array b. The number of bytes actually read is returned as an integer. This method blocks until input data is available, end of file is detected, or an exception is thrown. If
docs.oracle.com
여기서 Stream이란 흐름이라는 뜻이긴 하나, 순서가 정해진 data의 한 모임을 데이터의 흐름이라는 뜻에서 사용하는 것으로 보인다.
( data -> d 다음 a 다음 t 다음 a 이런 순서를 stream이라는 것에 byte 단위로 차례로 읽어들인 뒤 활용할 수 있게 해준다.)
Stream에는 여러가지 종류가 있는데, 실제 개발할 때 보면 여러가지 Strem을 사용한다.
InputStream / OutputStream - 바이트 단위 입출력을 위한 최상위 입출력 스트림 클래스
InputStreamReader / OutputStreamWriter - 문자 단위 입출력을 위한 하위 스트림 클래스
BufferedReader / BufferedWriter - 바이트 단위 입출력을 위한 하위 스트림 클래스
FileInputStream / FileOutputStream - 바이트 단위 입출력을 위한 스트림 클래스
FileReader / FileWriter - 문자 단위 입출력을 위한 하위 스트림 클래스
'IT기술 > JAVA' 카테고리의 다른 글
[Java] Enum 상수 집합 사용하기 (0) | 2023.06.28 |
---|---|
[java] jackson 에러 cannot deserialize from Object value 해결방법 (0) | 2023.06.23 |
[JAVA] 상속 (Inheritance), extends와 implements (0) | 2023.05.26 |
[JAVA] String의 빈값 구분하기 null check (0) | 2023.05.24 |
[Java] String 자르기 substring (0) | 2023.05.23 |