첫번째로 알아볼 스트림은 파일형식의 데이터를 읽어오는 기반스트림 FileInputStream에 대해 알아보자
우선 읽어올 파일 a.txt를 미리 하나 만들어두자
이제 이 파일을 읽어올 FileInputStream 객체를 생성하자
파일을 못찾는 예외가 발생할수있기때문에 try catch문으로 예외처리를 해준다
반복문을 활용해 정수형 readData에 FileInputStream 을 통해 읽어온 값을 한개씩 차례대로 출력하며 넣어준다, FileInputStream의 read는 정수형으로 데이터를 읽어오기때문에 정수형에 담아줘야한다
한글은 1byte로는 읽을수없는 범위라서 읽을수가없다
이번엔 버퍼스트림을 통해 더 효율적으로 파일을 읽어보자
package io.file.ch01;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class MyBufferedInputStream {
public static void main(String[] args) {
// 보조 스트림에 사용 -> 기반 스트림이 필요 하다.
FileInputStream fin = null;
BufferedInputStream bfin = null;
try {
// 기반 스트림
fin = new FileInputStream("a.txt");
// 보조 스트림(기반스트림)
bfin = new BufferedInputStream(fin);
int data;
while ( (data = bfin.read()) != -1) {
System.out.print((char) data);
}
} catch (Exception e) {
// 리소스 자원 정리 -> 반대로 -> 열었던 자원에 순서를 반대로 닫아 주면된다.
if(bfin != null) {
try {
bfin.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if(fin != null) {
try {
fin.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
} // end of main
}
버퍼스트림을 통해 기반스트림을 향상시켜주었다
'Java' 카테고리의 다른 글
File Copy(입/출력 동시 사용) (0) | 2024.05.24 |
---|---|
파일 출력 스트림 (0) | 2024.05.24 |
자바 I/O(입력 출력) 개론 (0) | 2024.05.24 |
Map 인터페이스 (0) | 2024.05.24 |
Set 인터페이스 (0) | 2024.05.24 |