[Java 20-2 FileByteLoadApp] 파일에 저장된 값을 원시테이터를 읽어와 모니터에 전달하여 출력하는 프로그램

임승현·2022년 10월 19일

Java

목록 보기
104/126
package xyz.itwill.io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//파일에 저장된 값을 원시테이터를 읽어와 모니터에 전달하여 출력하는 프로그램
public class FileByteLoadApp {
	public static void main(String[] args) throws IOException {
		
		//FileInputStream : 파일에 저장된 값을 원시데이터로 읽기 위한 입력스트림을 
        생성하기 위한 클래스
		//FileInputStream(String filename) : 파일경로를 전달받아 파일 입력스트림을 
        생성하는 생성자
		//→ 전달받은 파일경로에 파일이 있는 경우 기존 파일값 대신 새로운 값이 
        파일에 저장 - 예외처리(무조건)
		//→ 파일이 없는 경우 파일 입력스트림을 생성하지 못하므로 반드시 예외처리
		FileInputStream in=null;
		try {
			in=new FileInputStream("c:/data/byte.txt");
			
			System.out.println("[메세지]c:\\data\\byte.txt 파일에 저장된 내용입니다.");
			int readByte;
			while(true) {
				//파일 입력스트림을 이용하여 파일값을 원시데이터로 반환받아 저장 - LOAD
				readByte=in.read();
				
				//파일의 마지막에는 무조건 EOF 존재
				if(readByte==-1) break;//파일의 모든 값을 얻어온 경우 반복문 종료
				
				//모니터 출력스트림에 원시데이터를 전달하여 출력
				System.out.write(readByte);
			}
		} catch (FileNotFoundException e) {
			System.out.println("[에러]대상 파일을 찾을 수 없습니다.");
		} finally {
			//FileInputStream.close() : 파일 입력스트림을 제거하는 메소드
			//→ 예외 발생과 상관없이 무조건 제거를 위해 try 블럭이 아닌 finally 
            블럭에서 처리하는 것을 권장
			//if 구문을 사용하여 참조변수에 NULL이 저장되어 있지 않을 경우에만 메소드 호출
			//→ NullPointException 발생 방지
			if(in!=null) in.close();
		}
	}
}

0개의 댓글