파일 입출력
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();
}
}
}