728x90
반응형
* File 클래스는 파일이나 디렉터리에 대해, 경로명, 크기, 타입, 수정 날짜 등의 속성 정보를 제공하고, 파일 삭제, 디렉터리 생성, 파일 이름 변경, 디렉터리 내의 파일 리스트를 제공하는 등 다양한 파일 관리 작업을 지원한다.
File 클래스의 경로명은 java.io.File이다.
이름과 달리 File 클래스에는 파일 입출력 기능은 없다.
* File 클래스의 생성자
메소드 | 설명 |
File(File parent, String child) | parent 디렉터리에 child 이름의 서브 디렉터린 파일을 나타내는 File 객체 생성 |
File(String pathname) | pathname의 완전 경로명이 나타나는 File 객체 생성 |
File(String parent, String child) | parent 디렉터리에 child 미읆의 서브 디렉터리나 파일을 나타내는 File 객체 생성 |
File(URI uri) | file:; URI를 추상 경로명으로 변환하여 File 객체 생성 |
* File 클래스의 주요 메소드
메소드 | 설명 |
boolean mkdir() | 새로운 디렉터리 생성 |
string[] list() | 디렉터리 내의 파일과 서브 디렉터리 리스트를 문자열 배열로 리턴 |
File[] listFiles() | 디렉터리 내의 파일과 서브 디렉터리 리스트를 File[] 배열로 리턴 |
boolean renameTo(File dest) | dest가 지정하는 경로명으로 파일 이름 변경 |
boolean delete() | 파일 또는 디렉터리 삭제 |
long length() | 파일의 크기 리턴 |
String getPath() | 경로명 전체를 문자열로 변환하여 리턴 |
String getName() | 파일 또는 디렉터리 이름을 문자열로 리턴 |
boolean isFile() | 일반 파일이면 true 리턴 |
boolean isDirectory() | 디렉터리이면 true 리턴 |
long lastModified() | 파일이 마지막으로 변경된 시간 리턴 |
boolean exists() | 파일 또는 디렉터리가 존재하면 true 리턴 |
* File 클래스 활용한 파일 관리
package Ch0808Ex;
import java.io.File;
public class Ch0808Ex {
public static void listDirectory(File dir) {
/*
* 디렉토리에 포함된 파일과 서브 디렉토리의 이름, 크기, 수정 시간을 출력하는 메소드
*/
System.out.println("-----"+ dir.getPath() + "의 서브 리스트 입니다.-----");
File[] subFiles = dir.listFiles();
// 디렉토리에 포함된 파일과 디렉토리 이름의 리스트 얻기
for(int i=0; i<subFiles.length; i++) {
// subfiles 배열의 각 File에 대해 루프
File f = subFiles[i];
long t = f.lastModified(); // 마지막으로 수정된 시간
System.out.print(f.getName());
System.out.print("\t파일 크기: " + f.length()); // 파일 크기
System.out.printf("\t 수정된 시간: %tb % td %ta %tT\n", t, t, t, t); // 포맷 출력
}
}
public static void main(String[] args) {
File f1 = new File("c:\\windows\\system.ini");
System.out.println(f1.getPath() + "," + f1.getParent() + "," + f1.getName());
String res="";
if(f1.isFile()) res = "파일"; // 파일 타입이면
else if(f1.isDirectory()) res = "디렉토리"; // 디렉토리 타입이면
System.out.println(f1.getPath() + "은 " + res + "입니다.");
File f2 = new File("c:\\Temp\\java_sample"); // 새로 만들고자 하는 디렉터리
if(!f2.exists()) { // f2 디렉터리가 존재하는지 검사
f2.mkdir(); // 존재하지 않으면 디렉토리 생성
}
listDirectory(new File("c:\\Temp")); // c:\Temp에 있는 파일 리스트 출력
f2.renameTo(new File("c:\\Temp\\javasample")); // java_sample -> javasample로 이름 변경
listDirectory(new File("c:\\Temp")); // javasample로 변경후 리스트 출력
}
}
반응형
'자바공부' 카테고리의 다른 글
명품 자바 프로그래밍 9장, 자바 GUI 기초, AWT와 스윙(Swing) 요약 (0) | 2022.06.14 |
---|---|
명품 자바 프로그래밍 8장, 입출력 스트림과 파일 입출력 요약 (0) | 2022.06.14 |
버퍼 입출력과 파일 입출력, 명품 자바 프로그래밍 8장 (0) | 2022.06.14 |
바이트 스트림과 파일 입출력 (0) | 2022.06.14 |
문자 집합과 InputStreamReader, 명품 자바 프로그래밍 8장 (0) | 2022.06.13 |