카테고리 없음

byte, string, file 간 변환

흰색남자 2023. 4. 7. 16:30

업무하다가 데이터 입출력에 관해서 너무 아는게 없어서 살짝 정리했다.

 

 

BufferedWriter, BufferedReader

입출력 스트림으로부터 데이터를 읽고 쓰는데 사용됨.
new BufferedReader(new InputStreamReader(new FileInputStream()))
같은 형태로 효율적이게 사용할 수 있음.
파일 읽는 스트림을 인풋 스트림 리더로 읽고 그걸 버퍼 리더로 효율적이게 읽는다.

 

InputStreamReader, OutputStreamWriter

1. 입출력 속도 향상
InputStream은 파일, 네트워크 등 외부 자원으로부터 데이터를 읽어들일 수 있습니다. 이때, 데이터를 한 바이트씩 읽는 것보다 버퍼에 데이터를 미리 적재한 후 한 번에 읽어들이는 것이 훨씬 효율적입니다. 이러한 기능을 제공하는 클래스가 BufferedInputStream입니다. BufferedInputStream은 내부에 버퍼를 가지고 있어 데이터를 미리 적재한 후 한 번에 읽어들일 수 있습니다. 이렇게 함으로써 입출력 속도가 향상됩니다.

2. 입출력 작업 중 예외 처리
InputStream은 입출력 작업 중 예외 처리를 잘 수행합니다. 파일 끝에 도달했을 때(-1 반환), 읽기 작업 중 예외가 발생했을 때 IOException을 발생시켜 적절하게 처리합니다.

3. 다양한 자원과 함께 사용
InputStream은 파일 뿐만 아니라, 네트워크, 시스템 콘솔, 메모리 버퍼 등 다양한 자원과 함께 사용할 수 있습니다. 이러한 자원에 대한 입출력 처리를 일관성있게 수행하기 위해 자바에서는 InputStream, OutputStream 클래스를 제공합니다.

 

 

File vs FileInputStream 은 둘 다 파일을 읽을 수 있다.
하지만 읽는 범위가 다르다. 파일은 파일 정보 까지 모두 읽을 수 있는 반면 FileInputStream은 내용만을 읽는다.