API - File
java.io.File : 파일과 폴더를 구별하지 않고 함게 관리하는 클래스
import java.io.File;
public class Test01 {
public static void main (String[] args) {
File f = new File("sample.txt");
System.out.println(f.exists()); // 대상 파일이 존재하는가?
System.out.println(f.isFile()); // 대상이 파일인가?
System.out.println(f.isDirectory()); // 대상이 폴더인가
// 파일 정보
System.out.println(f);
System.out.println(f.getName()); // 파일명
System.out.println(f.getParent()); // 경로
System.out.println(f.getPath()); // 경로 + 파일명(상대경로) ; 파일 객체 생성 시 적은 경로 ; 현재 파일 기준
System.out.println(f.getAbsolutePath()); // 경로 + 파일명(절대경로) ; 컴퓨터 상 저장된 진짜 경로
System.out.println(f.length()); // 파일 크기
System.out.println(f.lastModified()); // 최종 수정 시작
System.out.println(System.currentTimeMillis());
System.out.println(f.canRead()); // 읽을 수 있는가
System.out.println(f.canWrite()); // 쓸 수 있는가
}
}
import java.io.File;
public class Test02 {
public static void main (String[] args) {
File f = new File("C:\\Users\\Administrator\\JAVA\\Workspace\\API");
// File f = new File("sample.txt");
String res = null;
if (f.isFile()) {
res = String.format("%-20s%10s%20dbyte", f.getName(), "[파일]", f.length());
} else {
res = String.format("%-20s%10s%20dbyte", "[" + f.getName() + "]", "[폴더]", f.length());
}
System.out.println(res);
}
}
import java.io.File;
public class Test03 {
public static void main (String [] args ) {
File f = new File("."); // 현재 폴더
System.out.println(f.getAbsolutePath()); //
System.out.println(f.exists());
System.out.println(f.isDirectory());
String[] names = f.list(); // 파일명
System.out.println(names.length);
for (String name : names) {
System.out.println(name);
}
// 파일명만 뽑아 온 것이기 때문에 할 수 있는 것은 없다
System.out.println("=============================");
File[] files = f.listFiles(); // 파일 객체
System.out.println(files.length);
for (File file : files) {
System.out.println(file.length()); // 파일의 크기(byte)
System.out.println(file.getName());
}
}
}
import java.io.File;
import java.io.IOException;
public class Test04 {
public static void main (String[] args) {
// 파일 생성 및 삭제
File f = new File("sample2.txt");
if(!f.exists()) {
try {
System.out.println(f.createNewFile());
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println(f.delete());
}
}
}
import java.io.File;
import java.io.IOException;
public class Test05 {
public static void main (String [] args) {
// 폴더 생성 및 삭제
File dir = new File("file");
// File dir = new File("file/f1/f2/f3");
System.out.println(dir.exists());
System.out.println(dir.isDirectory());
if(dir.exists()) {
// 내부에 파일이 있으면 삭제 불가
System.out.println(dir.delete());
} else {
//System.out.println(dir.mkdir()); // 폴더 생성
System.out.println(dir.mkdirs()); // 경로 상의 모든 폴더 생성
}
}
}
Exercise 1
import java.io.File;
public class FileManager {
public static void print(File f) {
String res = null;
if(f.isFile()) {
res = String.format("%-20s%20s%20dbyte", f.getName(), "[파일]", f.length());
} else {
res = String.format("%-20s%20s%20dbyte", f.getName(), "[폴더]", f.length());
}
System.out.println(res);
}
public static void printFolder2(File folder) {
if(!folder.isDirectory()) {
System.out.println(String.format("%-20s%20s%20dbyte", folder.getName(), "[파일]", folder.length()));
} else {
File[] files = folder.listFiles();
for(File file : files ) {
FileManager.print(file);
}
}
}
public static void printFolder(File folder) {
if (folder.exists()) {
if(folder.isFile()) {
System.out.println(String.format("%-20s%10s%20dbyte", folder.getName(), "[파일]", folder.length()));
} else {
File[] files = folder.listFiles();
for(File file : files) {
if(file.isDirectory()) {
FileManager.printFolder2(file);
}
FileManager.print(file);
}
}
}
}
// public static void remove(File file) {
//
// if(file.isDirectory()) {
// File[] files = file.listFiles();
//
// for (File f : files) {
// remove(f);
// }
//
// }
// System.out.println(file + "삭제완료");
// file.delete();
// }
}
// 출력 class
import java.io.File;
public class Homework {
public static void main (String[] args) {
File f = new File("C:\\Users\\Administrator\\JAVA\\Workspace");
FileManager.printFolder(f);
// FileManager.remove(f);
}
}
출력화면
