코딩항해기

[Error/JAVA] IOException 본문

Error solution

[Error/JAVA] IOException

miniBcake 2024. 7. 25. 11:40

 

 

오류 메세지 기록

IOException

입출력 작업 중에 발생하는 예외로, 파일이 존재하지 않거나 파일에 접근할 수 없는 경우 등의 입출력 관련 오류 시 발생

 

IOException을 보여주기 위해 연출한 이미지

 

입출력 작업 때에는 IOException이 발생할 가능성을 항상 지니고 있기 때문에 try-catch 또는 throws를 통해 해당 예외를 처리할 것을 강제하고 있다.

 

해당 오류가 발생한 코드에서는 try-catch를 통해 예외처리를 해둔 상태였는데, 계속해서 IOException catch에 걸리는 상황이었다. ( IOException 발생! )

 

상단에서 경로, 파일명에 대한 검증은 이미 끝난 상태였기 때문에 저장값이 없는 경우를 의심하게 되었다.

그래서 IOException이 발생하기 직전에 로그를 찍어 저장값을 확인해보았지만 정상적으로 잘 넘어오고 있다는 것을 확인 할 수 있었다.

 

굉장히 난항에 빠지게 되었는데... 여러 정보를 찾아온 결과, 상단의 writer.close() (BufferedWriter)에 대한 이해도가 부족한 것이 문제였다.

 

문제 발생 원인은 해당 코드에서는 최상단에서 파일을 만들어 값을 넣고, 그 파일로부터 다시 값을 읽어온 다음에 다시 그 파일에 값을 넣는 흐름을 취하고 있는데, 마지막에 값을 다시 넣을 때 최상단의 FileWriter를 다시 활용했기 때문이다.

 

최상단의 FileWriter는 파일 값을 전송하기 위해 writer.close()를 사용하는 과정에서 같이 닫혔기 때문에 값이 없어 저장할 경로를 가져오지 못하는 것이었다.

 

다시 FileWriter를 만들어주는 것으로 해결했다.