파일 입출력

2022. 5. 1. 16:58카테고리 없음

* File 클래스

 1)파일 시스템의 파일을 표현하는 클래스

  - 파일 크기, 파일 속성, 파일 이름등의 정보 제공

  - 파일 생성 및 삭제 기능 제공

  - 디렉토리를 생성하고 디렉토리에 존재하는 파일 리스트를 얻어내는 기능 제공

 

 2)파일 객체 생성

File file = new File("C:\\Temp\\file.txt"); //역슬래쉬가 2개인 이유는 escape문자기 때문
File file = new File("C:/Temp/file.txt");

 3)파일 또는 디렉토리

boolean isExist = file.exists();

  *) 리턴 값이 true면 존재

 

 4) 파일 및 디렉토리 생성 및 삭제 메서드

                 mkdir()  -> C:/temp1(없는파일)/temp2(없는파일)/dir   => temp1에서 Exection 발생

                 mkdirs() -> C:/temp1(없는파일)/temp2(없는파일)/dir   => temp1,temp2,dir 파일을 모두 생성

 

 5) 파일 및 디렉토리의 정보를 리턴하는 메소드

실습.

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileExample {

	public static void main(String[] args) throws URISyntaxException, IOException {
		File dir   = new File("C:/Temp/dir");
		File file1 = new File("C:/Temp/file1.txt");
		File file2 = new File("C:/Temp/file2.txt");
		File file3 = new File(new URI("file:///C:/Temp/file3.txt"));
		
		if(dir.exists()   == false) {dir.mkdirs(); }
		if(file1.exists() == false) {file1.createNewFile(); }
		if(file2.exists() == false) {file2.createNewFile(); }
		if(file3.exists() == false) {file3.createNewFile(); }
		
		File temp = new File("C:/Temp");  //파일 객체를 생성해서 "C:/Temp"라는 디렉토리를 만듦
		File[] contents = temp.listFiles();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm");
		
		System.out.println("날짜                  시간               형태                      크기               이름");
		System.out.println("______________________________________________________________");
		
		for(File file : contents) {
			System.out.printf(sdf.format(new Date(file.lastModified())));
			if(file.isDirectory()) {
				System.out.println("\t<dir>\t\t\t" + file.getName());
			} else {
				System.out.println("\t\t\t" + file.length() + "\t" + file.getName());
			}
			System.out.println();
		}
	}
}