[Java] File 클래스
2021. 12. 17. 17:36ㆍLanguage`/Java
File 클래스
- 파일이나 디렉터리에 대한 경로명, 크기, 타입, 수정 날짜,.. 등 속성 정보 제공
- 파일이나 디렉터리에 대한 파일 삭제, 디렉터리 생성, 파일 이름 변경,... 등 파일 관리 작업 지원
- File(String pathname) : pathname의 완전 경로명이 나타내는 File 객체 생성
- File(String parent, String child) : parent 디렉터리에 child 이름의 서브 디렉터리/파일을 나타내는 File 객체 생성
- File(File parent, String child) : parent 디렉터리에 child 이름의 서브 디렉터리/파일을 나타내는 File 객체 생성
- File(URI url) : file:URI를 추상 경로명으로 변환하여 File 객체 생성
File 메소드
▶ boolean mkdir()
- 디렉터리 생성
File f = new File("c:/Temp/java8");
if(!f.exists()) // f 디렉터리가 존재하지 않으면
f.mkdir(); // f 디렉터리 생성
// c:/temp에 java8이라는 디렉터리 새로 생성
▶ String[] list()
- 디렉터리 내의 파일/서브 디렉터리 리스트를 문자열 배열로 리턴
File f = new File("c:/sqldeveloper");
String[] list = f.list();
// c:/sqldeveloper 디렉터리내에 있는 파일/서브 디렉터리 리스트 리턴
---------------------------
configuration
dataminer
dropins
equinox
external
icon.png
ide
javavm
jdbc
jdev
jlib
jviews
modules
netbeans
orakafka
rdbms
sleepycat
sqldeveloper
sqldeveloper.exe
sqldeveloper.sh
sqlj
svnkit
▶ File[] listFiles()
- 디렉터리 내의 파일/서브 디렉터리 리스트를 File[] 배열로 리턴
- listFiles()를 통해서 얻은 배열에 File 메소드(getName(), length(),..)등을 적용
▶ boolean renameTo(File dest)
- dest가 지정하는 경로명으로 파일 이름 변경
File f = new File("c:/Temp/java8/java8.txt"); // temp/java8 경로에 있는 java8.txt 객체 f
f.renameTo(new File("c:/Temp/java8/java8test.txt"));
//f를 java8test.txt로 이름 변경
▶ boolean delete()
- 파일/디렉터리 삭제
File f1 = new File("c:/Temp/java8/java8test.txt"); // java8test 파일을 가리키는 객체 f1
File f2 = new File("c:/Temp/java8"); // java8 디렉터리를 가리키는 객체 f2
f1.delete(); // f1(java8test 파일) 삭제
f2.delete(); // f2(java8 디렉터리) 삭제
▶ long length()
- 파일의 크기 리턴
File f = new File("c:/windows/system.ini");
long size = f.length(); // size = 219
▶ String getName()
- 파일/디렉터리 이름을 문자열로 리턴
File f = new File("c:/Temp/java8/java8.txt");
String name1 = f.getName(); // java8.txt 리턴
▶ String getParent()
- 파일/디렉터리의 부모 디렉터리 이름 리턴
File f = new File("c:/Temp/java8/java8.txt");
String name1 = f.getName(); // java8.txt 리턴
String name2 = f.getParent(); // c:\Temp\java8 리턴
▶ String getPath()
- 경로명 전체를 문자열로 변환해서 리턴
File f = new File("c:/Temp/java8/java8.txt");
String name1 = f.getName(); // java8.txt 리턴
String name2 = f.getParent(); // c:\Temp\java8 리턴
String name3 = f.getPath(); // c:\Temp\java8\java8.txt 리턴
▶ boolean isFile()
- 일반 파일이면 true 리턴
File f1 = new File("c:/Temp/java8/java8.txt"); // java8.txt 파일
File f2 = new File("c:/Temp/java8"); // java8 디렉터리
f1.isFile(); // f1은 java8.txt 파일이니까 true 리턴
f2.isFile(); // f2는 java8 디렉터리니까 false 리턴
▶ boolean isDirectory()
- 디렉터리면 true 리턴
File f1 = new File("c:/Temp/java8/java8.txt"); // java8.txt 파일
File f2 = new File("c:/Temp/java8"); // java8 디렉터리
f1.isFile(); // f1은 java8.txt 파일이니까 false 리턴
f2.isFile(); // f2는 java8 디렉터리니까 true 리턴
▶ long lastModified()
- 파일이 마지막으로 변경된 시간 리턴
File f1 = new File("c:/Temp/java8/java8.txt");
long mod = f1.lastModified(); // 1639729549323 리턴
System.out.println(new Date(mod));
// 1639729549323을 Date형식으로 변환
// -> Fri Dec 17 17:25:49 KST 2021
▶ boolean exists()
- 해당 파일/디렉터리가 존재하면 true 리턴
File f1 = new File("c:/Temp"); // 존재 O
File f2 = new File("c:/Temp/java8"); // 존재 O
File f3 = new File("c:/Temp/java10"); // 존재 X
f1.exists(); // 존재하니까 true 리턴
f2.exists(); // 존재하니까 true 리턴
f3.exists(); // 존재하지 않으니까 false 리턴