반응형
자바의 File 클래스는 파일과 디렉토리를 관리하고, 다양한 파일 시스템 작업을 수행할 수 있는 유용한 클래스입니다. java.io 패키지에 포함되어 있으며, 파일 및 디렉토리의 생성, 삭제, 정보 조회 등을 쉽게 할 수 있도록 도와줍니다. 이번 글에서는 File 클래스의 주요 기능과 사용법에 대해 알아보겠습니다.
1. 파일 및 디렉토리 생성과 삭제
File 클래스를 사용하면 파일과 디렉토리를 쉽게 생성하거나 삭제할 수 있습니다.
- 파일 생성: createNewFile() 메서드를 사용하여 새 파일을 생성할 수 있습니다. 이 메서드는 파일이 이미 존재하는 경우 false를 반환합니다.
File file = new File("example.txt");
try {
if (file.createNewFile()) {
System.out.println("파일이 생성되었습니다.");
} else {
System.out.println("파일이 이미 존재합니다.");
}
} catch (IOException e) {
System.out.println("파일 생성 중 오류 발생: " + e.getMessage());
}
- 디렉토리 생성: mkdir() 메서드를 사용하면 새로운 디렉토리를 생성할 수 있습니다. 디렉토리가 이미 존재하는 경우 false를 반환합니다.
File dir = new File("exampleDir");
if (dir.mkdir()) {
System.out.println("디렉토리가 생성되었습니다.");
}
- 파일 삭제: delete() 메서드를 사용하여 파일을 삭제할 수 있습니다.
if (file.delete()) {
System.out.println("파일이 삭제되었습니다.");
}
2. 파일 정보 조회
File 클래스는 파일의 크기, 경로, 수정 시간 등을 조회할 수 있는 여러 메서드를 제공합니다.
- 파일 크기 조회: length() 메서드는 파일의 크기를 바이트 단위로 반환합니다.
System.out.println("파일 크기: " + file.length() + " bytes");
- 파일 경로 조회: getAbsolutePath() 메서드는 파일의 절대 경로를 반환합니다.
System.out.println("파일 경로: " + file.getAbsolutePath());
- 파일 존재 여부 확인: exists() 메서드를 사용하면 파일이 존재하는지 여부를 확인할 수 있습니다.
if (file.exists()) { System.out.println("파일이 존재합니다."); }
else { System.out.println("파일이 존재하지 않습니다."); }
3. 디렉토리 내 파일 목록 조회
디렉토리 내에 있는 파일 및 디렉토리 목록을 조회하려면 list() 또는 listFiles() 메서드를 사용합니다.
- 파일 목록 조회: list() 메서드는 디렉토리 내의 파일과 하위 디렉토리 목록을 문자열 배열로 반환합니다.
File dir = new File("exampleDir");
String[] files = dir.list();
if (files != null) {
for (String fileName : files) {
System.out.println(fileName);
}
}
- File 객체로 반환: listFiles() 메서드는 디렉토리 내의 파일을 File 객체 배열로 반환합니다.
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
System.out.println(f.getName());
}
}
4. 파일 권한 설정 및 확인
File 클래스를 사용하면 파일의 읽기 및 쓰기 권한을 설정하거나 확인할 수 있습니다.
- 읽기 권한 확인: canRead() 메서드는 파일을 읽을 수 있는지 확인합니다.
- 쓰기 권한 확인: canWrite() 메서드는 파일을 쓸 수 있는지 확인합니다.
- 읽기 권한 설정: setReadable() 메서드를 사용하여 파일의 읽기 권한을 설정할 수 있습니다.
- 쓰기 권한 설정: setWritable() 메서드를 사용하여 파일의 쓰기 권한을 설정할 수 있습니다.
if (file.canRead()) {
System.out.println("파일을 읽을 수 있습니다.");
}
if (file.canWrite()) {
System.out.println("파일에 쓸 수 있습니다.");
}
5. 마치며
자바의 File 클래스는 파일과 디렉토리를 관리하는 데 필수적인 도구입니다. 파일 시스템을 다룰 때 자주 사용되는 기능들을 제공하므로, 자바에서 파일 입출력을 다루고자 할 때 매우 유용하게 활용될 수 있습니다. 하지만 File 클래스는 실제 파일의 내용을 읽거나 쓰는 기능은 제공하지 않으므로, 파일 I/O를 위해서는 FileInputStream, FileOutputStream, BufferedReader 등의 클래스를 함께 사용해야 합니다.
반응형