본문 바로가기

개발자노트

Resource를 JAVA로 불러오기 (FileInputStream)

먼저 외부에 있는 데이터를 사용하기 위해선
File 이라는 클래스가 자바 내에 hiding 되어있기 때문에 File file = new File();로 임포트한다.

그리고 이 때 , Input 값에 자신이 불러오고자 하는 파일의 경로와 파일명.확장자를 입력하면 된다.

이 파일을 불러올 때에 대한 오류가 있을 수 있기 때문에 try catch로 예외처리를 완료하면 불러온 값을 file이라는 객체로 생성하는 것 까지 완료가 된 것이다.

package class03;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
// [파일객체]
public class Test02 {

	public static void main(String[] args) {
		File file=new File("C:\\Users\\test\\test\\resource\\test.txt");
		// 해당 경로에 위치하는 파일이 존재하는지 체크!
        // 해당 경로에 파일이 없으면 새로 생성된다.
        // FNE 을 줄이는데 도움이 된다 ! > filenotfoundexeption
		try {
			file.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			System.out.println("로그: 파일객체생성");
		}

 

로깅 기법으로 내 file 객체가 잘 생성이 됐는지 확인이 됐으면 다음은 불러온 파일을 이클립스에서 출력해 볼 것인데,

이때 사용되는 FileInputStream 인데,

사용 방법은 FileInputStream 객체명 =new FileInputStream(위에서 만든 객체명); 이다.

 

		try {
			FileInputStream fis=new FileInputStream(file); // 객체를 받아서 정보를 본다.
			int data; // int 값으로 불러오기 때문에
			while((data=fis.read()) !=-1){ // fis.read 해라, EOF이 아니라면
				System.out.print((char)data); // 형변환, 숫자값을 받고 싶은게 아니니깐.
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

여기 형변환을 하는 이유는 , 내가 TEST파일에 1234 라는 수를 넣어놨는데 int 값으로 받게 되면 아스키 코드인

49,50,51,52 로 불러와지기 때문에 우리가 보고 싶은 것은 문자열은 1,2,3,4 이기 때문에 형변환을 진행해 주었다.