package ch02;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStreamTest1 {
//파일에 있는 소스코드를 읽거나
//인트나 스트링을 파일로 쓰게끔
//여기에적는 맴버변수는 자동으로 null이되지만
public static void main(String[] args) {
FileInputStream fis = null; //매서드나 함수안에는 null값을 주어서 초기값을 설정해주어야 오류가 적다
try {
fis = new FileInputStream("assets/input.txt");
System.out.println((char)fis.read());
System.out.println((char)fis.read());
System.out.println((char)fis.read());
} catch (IOException e) { //IOException 이 FileNotFoundException보다 상위
e.printStackTrace();
}//입출력은 예외처리를 항상 해주어야한다.
finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
} //catch(Exception e2) {
//System.out.println(e2);
//}
}
System.out.println(" end : 프로그램 다운 안됨!");
}
// java.io.FileNotFoundException: assets\input99.txt (지정된 파일을 찾을 수 없습니다)
//객체 만드는데 실패
// at java.base/java.io.FileInputStream.open0(Native Method)
// at java.base/java.io.FileInputStream.open(FileInputStream.java:211)
// at java.base/java.io.FileInputStream.<init>(FileInputStream.java:153)
// at java.base/java.io.FileInputStream.<init>(FileInputStream.java:108)
// at ch02.FileInputStreamTest1.main(FileInputStreamTest1.java:16)
//Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.io.FileInputStream.close()" because "fis" is null
//
// at ch02.FileInputStreamTest1.main(FileInputStreamTest1.java:25)
}