-> 블로그 이전

[Java] File 클래스

2021. 12. 17. 17:36Language`/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 리턴