FileInputStream : byte단위로 파일을 읽어 오는 클래스 입니다.
사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다.
설명은 주석과 코드 아래부분에 있습니다.
import java.io.FileInputStream;
public class Sample {
public static void main(String[] args) {
try {
//// 파일 스트림을 이용한 파일의 내용을 읽어오는 예제 입니다.
//file open..
FileInputStream fis = new FileInputStream("c:/temp/java/test/test.txt");
//파일의 내용을 byte단위로 읽어옵니다.그래서
//읽어서 저장할 버퍼 byte 배열 설정
byte[] byteBuff = new byte[9999];
// 파일을 읽고 읽은 크기를 nRLen 에 저장한다.
int nRLen = fis.read(byteBuff);
//출력을 위해서 byte배열을 문자열로 변환
String strBuff = new String(byteBuff, 0, nRLen);
//읽은 내용을 출력 합니다.
System.out.printf("읽은 바이트수[%d] : \n읽은 내용 %s \n", nRLen, strBuff);
//사용이 끝나면 파일 스트림을 닫습니다.
fis.close();
} catch (Exception e) {
System.out.println("읽을 파일이 없습니다. \n 읽을 파일을 만들어 준다음 실행 하세요.\n");
System.out.println("c:/temp/java/test/test.txt\n");
}
}
}
//결과는 :
//읽은 바이트수[70] :
//읽은 내용 1234567890
//abcdefghijklmnopqrstuvwxyz
//가나다라마바사아자차카타파하
FileInputStream 은 Stream에서 알수 있는것처럼 파일의 내용을 byte 단위로 읽어 오는 클래스입니다.
출력시에는 String 으로 변환 해야 합니다.
//출력을 위해서 byte배열을 문자열로 변환
String strBuff = new String(byteBuff, 0, nRLen);
사용법은 :
저장할 문자열 = new String(변환할바이트배열,부터,까지);
이름이 InputStream이라서 파일에 기록한다고 생각할 수도 있으나
자바는 철저히 자기밖에 몰라서 자바 JVM 입장에서 파일의 내용을
가지고 오는 것이라 InputStream입니다.
주의할 점은 사용한 파일 스트림 사용 후 에는 반드시 close( )를 해줘야 됩니다.
그렇지 않으면 파일에 접근이 되지 않습니다.
728x90
반응형
'Back-end > JAVA & Spring' 카테고리의 다른 글
[Java] 자바 File 클래스 [북붙따라하기] (0) | 2021.05.28 |
---|---|
[Java] 파일 입출력 FileOutputStream [북붙따라하기] (0) | 2021.05.28 |
[Java] java.io.FileInputStream 주요 메소드 (0) | 2021.05.26 |
[Java] File.separator로 OS 상관없이 파일 경로 구분하기 (0) | 2021.05.26 |
Quartz Job Scheduler란? (0) | 2021.05.24 |
댓글