이렇게 read를 조건에 저걸(?) 바로 넣어버리면 파일의 요소들이 다 출력이 안됨.
내가 넣은 데이터는 이렇게 3개인데
그 이유는 while 조건에서 이미 read를 만나 1이 읽어짐. 그러고 나면 while안에 있는 read에서는 2번째 문을 읽어옴. 또 와일 조건에서 마지막 객체인 3을 만남. 그러면 와일문 안에 있는 read는 읽어올 게 없으므로 readObject메서드에서 읽어올 게 없을 때 발생되는 EOFException이 뜨게 됨.
그렇기 때문에 while의 조건문에서 read가 만난 데이터와, while안에 있는 read가 만난 데이터가 같아야 함. 그래서 변수를 사용해서 넣어줌.
요렇게.
이런거 볼 때마다 뭔가 어렴풋이 알고는 있었는데 좀 찝찝한 상태로 넘어갔었다.
오늘 주말이라 좀 시간적 여유가 있어서 왜 그런지 생각을 해볼 수 있었다.
후 짱 시원하다 ㅋ
그러나. 나를 기다리는 또 다른 복병이 있었으니...
저렇게 해도 저 EOFException 계속 뜸.
(데이터들 저장은 잘 된 모습)
알고 보니 파일에 읽어올 객체가 없는 상태에서 readObject를 만나면 무조건 뜸.
와일 문의 조건에서 readObject를 만나니 뜸.
EOFExeption 없애는 방법!!!
단순 간단 catch로 잡아주고 안에 아무것도 안 넣으면 조용히 넘어간다ㅎ
후훗
분명 시간은 주말이 더 많은데... 왜 평일이랑 똑같은 시간 공부를 하게 되는 거지
..... 오히려 더 안 하는 거 같기돜ㅋ
다음 주부턴 정신 차리자^^
++04.22추가
복습하다가 더 좋은 방법을 발견
기존의 것.
개선된 것
와우 진짜 이게 훨씬 나음
결론 -> 변수에 넣을 필요 없다.
이렇게 하면.
'with my rubber duck > errors' 카테고리의 다른 글
git error Another git process seems to be running in this repository (0) | 2022.05.22 |
---|---|
깃허브 readme 쓰고 나서 push, commit 안됨 해결 (0) | 2022.04.26 |
ConcurrentModificationException 야매로 처리 (0) | 2022.04.17 |
NullPointerException , nice to meet you^^ (0) | 2022.04.05 |
boolean method 와 return과의 전쟁 기록 (0) | 2022.04.01 |
댓글