JWJ_Hub 2023. 4. 6. 19:57
package file;

import java.io.File;
import java.io.IOException;

public class Ex01 {
	public static void main(String[] args) throws IOException {
		// java.io.File : 운영체제의 파일 시스템과 연결하여 파일 및 폴더를 제어하는 클래스
		
		// 자바의 File 객체는 실제 파일을 가리키는 역할이며
		// 객체를 생성했다고 해서 파일이 생성되는 것은 아니다
		
		// 객체가 잘못된 파일을 가리키는 상태에서 읽기/쓰기/접근을 시도하면 IOException이 발생한다
		
		File f1 = new File("a.txt");			// File(String fileName)
		File f2 = new File("C:\\test");			// 파일 및 디렉토리(폴더)를 모두 포함한다
		File f3 = new File("C:\\test", "b.txt");// File(String parent, String child)
		File f4 = new File(f2, "c.txt");		// File(File parent, String child)
		
		System.out.println("f1이 실제로 존재하는가 : " + f1.exists());
		boolean bo1 = f1.createNewFile();	// 경로가 잘못되었거나, 디스크 용량이 부족, 권한 없음
		System.out.println("f1이 실제로 존재하는가 : " + f1.exists());
		System.out.println();
		
		f2.mkdir();		// 지정한 경로 및 이름으로 폴더(디렉토리)를 생성한다
		f2.mkdirs();	// 만약 마지막 경로의 폴더를 생성하는데 중간 경로가 없다면 중간 경로도 같이 생성한다
		
		// f2.mkdir()  == mkdir		(리눅스 기본 명령어)
		// f2.mkdirs() == mkdir -p	(리눅스 기본 명령어 + 옵션)
		
		// D:\\games\\blizzard entertainment\\starcraft
		boolean bo2 = f3.createNewFile();
		boolean bo3 = f4.createNewFile();
		System.out.println("f3가 새로 생성되었는가 : " + bo2);
		System.out.println("f4가 새로 생성되었는가 : " + bo3);
		
	}
}