본문 바로가기
자바

자바 파일 입출력 FileInputStream [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 30.

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

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

 

다음장에서는 FileOutputStream에 대해서입니다.

설명 끝

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글