1. 프로그램 --> 파일(출력)
public void fileSave() {
Phone[] arr = new Phone[3];
arr[0] = new Phone("갤럭시",1200000);
arr[1] = new Phone("아이폰",1300000);
arr[2] = new Phone("플립",1500000);
try(ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("e_phones.txt"))){
for(int i=0;i <arr.length;i++) {
oos.writeObject(arr[i]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
2. 프로그램 <-- 파일 (입력)
public void fileRead() {
try(ObjectInputStream ois = new ObjectInputStream(new FileInputStream("e_phones.txt"))){
/*
System.out.println(ois.readObject());
System.out.println(ois.readObject());
System.out.println(ois.readObject());
System.out.println(ois.readObject());// 파일의 끝을 만났을때 EOFException(EndOfFile) 예외발생 ->프로그램 정상종료
*/
//반복문 사용
while(true) { // 조건이 없기때문에 무한반복 돌리고, 파일의 끝을 만나면 EOFException 만나 예외처리 됨
System.out.println(ois.readObject());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(EOFException e) { // IOException이 부모타입 클래스이므로 자식타입 예외클래스를 위에 작성해야함
System.out.println("파일을 다 읽었습니다.");
} catch (IOException e) { //EOFException발생시 오류 추적구문 알려줌
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("프로그램을 종료합니다.");
}
'JAVA' 카테고리의 다른 글
13. Collection_ List_ArrayList 와 Generic (0) | 2022.11.09 |
---|---|
13_ Collection _Collection과 List_ArrayList (0) | 2022.11.08 |
12. IO (IntputOutput) _객체 입출력 (ObjectDao) (0) | 2022.11.08 |
12. IO (IntputOutput)_ Stream _ 보조스트림 (0) | 2022.11.08 |
12. IO (IntputOutput) _문자기반 Stream (0) | 2022.11.08 |