Java

Java IOException

승모근뭉치 2023. 1. 29. 02:30

프로젝트 내 src 내 javabasic 패키지 내 Ex4Exception.java

package javabasic;

import java.io.FileWriter;
import java.io.IOException;

public class Ex4Exception {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 파일에 저장
		FileWriter fw = null;
		String fileName = "C:\\java0901\\memo.txt";
		try {
			fw = new FileWriter(fileName);
			fw.write("파일에 저장했어요");
			System.out.println("파일확인");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				fw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}
java.io.FileNotFoundException: C:\java0901\memo.txt (지정된 경로를 찾을 수 없습니다)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(FileOutputStream.java:270)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
	at java.io.FileWriter.<init>(FileWriter.java:63)
	at javabasic.Ex4Exception.main(Ex4Exception.java:14)
Exception in thread "main" java.lang.NullPointerException
	at javabasic.Ex4Exception.main(Ex4Exception.java:22)

위의 코드를 실행하면 오류가 난다. C 드라이브 밑에 java0901 폴더를 만들면 오류가 나지 않는다.

Exception in thread "main" java.lang.NullPointerException

              at javabasic.Ex4Exception.main(Ex4Exception.java:22)

NullPointerException 이 

fw.close();

에서도 난다.

이 오류가 나기 전에 

fw = new FileWriter(fileName);

요 윗줄에서 지정된 경로를 찾을 수 없다면서 오류가 먼저 나서 그런 것이다.

그래서 fw 는 여전히 null 값이라 NullPointerException 이 나는 듯하다..