본문 바로가기
Back-end/JAVA & Spring

[Java] 파일 입출력 FileInputStream

by 꼬바리 2021. 5. 28.

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( )를 해줘야 됩니다.

그렇지 않으면 파일에 접근이 되지 않습니다.

 

 

 

출처 : https://hey79.tistory.com/53

728x90
반응형

댓글