먼저 외부에 있는 데이터를 사용하기 위해선
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 이기 때문에 형변환을 진행해 주었다.
'개발자노트' 카테고리의 다른 글
Resource [FileOutputStream]를 이용한 파일 생성과 입력 (0) | 2022.06.27 |
---|---|
Resource를 (클래스 생성없이) JAVA로 불러오기 (FileInputStream) (0) | 2022.06.27 |
반복문 for / for each + 컬렉션 [Iterator] (0) | 2022.06.27 |
스레드 [Thread] 의 동기화(synchronized) - 티켓팅 예제 (0) | 2022.06.24 |
스레드 [Thread]의 기본사용법 (0) | 2022.06.24 |