JAVA 유용한 클래스

(JAVA)파일에서 데이터를 가져오기 FileInputStream - 14

mynote6676 2025. 5. 29. 17:44

FileInputStream은 바이트 단위로 파일에서 데이터를 읽어오는 기반 스트림입니다. 텍스트 파일뿐만 아니라 이미지. 비디오,

실행 파일 등 바이너리 데이터에도 사용됩니다.

 

단어 설명

"바이너리 데이터"라는 말은 텍스트가 아닌 모든 데이터를 의미해요. 컴퓨터가 처리하는 모든 파일은 결국 0과 1로 이루어진 이진(binary) 데이터로 저장됩니다.

 

| 루트 폴더에서 a.txt 파일을 생성하고 텍스트를 넣어주세요

Hello World.
by tenco.

| 시나리오 1

package ch02;

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

public class MyFileInputStream {

    public static void main(String[] args) {
    
    // 파일을 바이트 단위로 읽어 들이는 녀석
    FileInputStream in = null;  
    // 지금은 null 값으로 초기화했어. 
    //즉, 아직 어떤 파일도 가리키지 않는 상태라는 뜻.
    //왜 null로 초기화하냐면, 나중에 try 블록에서 실제 파일과 연결된 
    //FileInputStream 객체를 만들어서 할당하려고.
    
    int readDate;
    try{
    	in = new FileInputStream("a.txt");
        
        readData = in.read();
        System.out.println("readData : " + readData);
        System.out.println("readData : " + (char)readData); // 첫 번째 글자만 출력됨
        
        readData = in.read();
        System.out.println("readData : " + readData);
        System.out.println("readData : " + (char)readData); // 두 번째 글자만 출력됨
        
        } catch (FileNotFoundException e) {   //파일이 없을 경우 잡는 예외구문
        	throw new RuntioneException(e);
        }catch (IOException e) { 			// 나머지 입출력전인 오류를 잡는 구문
        	throw new RumtimeException(e);
        }
        
    } // end of main
 }

|시나리오 2

package ch02;

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

/**
 * 파일 입력 스트림을 사용해 보자.
 */
public class MyFileInputStream2 {

    public static void main(String[] args) {
    // a.txt 파일에서 바이트 단위로 데이터를 읽어서 콘솔창에 출력해 보자.
    // 주의 : 한글은 3바이트 기반이라 1바이트 씩 읽으면 깨짐 발생할 수 있음.
    
    try(FileInputStream in = new FileInputStream("a.txt")) { // 
    // 사전 기반 지식
    // 파일에서 바이트 단위로 데이터를 읽을 때 더이상 읽을 데이터가 없다면
    // 정수값 -1 을 반환한다.
    int readData; // in.read의 값을 담아주기 위해 변수 선언한 것이다.
    while( (readData = in.read()) != -1 ) {
    	System.out.print((char)readData);
    }
 }catch (EXception e) {
 	throw new RuntimeException(e);
    }
  }
}

 

 

 

 

728x90