[Java] Files 클래스

Bam·2024년 3월 24일
0

Java

목록 보기
91/98
post-thumbnail

자바에서는 파일과 디렉토리에 대한 정보를 가지고있는 java.io.File, java.nio.file.Files 클래스를 제공하고 있습니다. FilesFile을 개선한 클래스입니다. 오늘은 두 클래스에 대해서 알아보려고 합니다.


File 클래스

File 객체 생성은 다음과 같이 합니다.

File file = new File("파일 경로");

파일 경로를 지정하는 방법에 대해서는 절대 경로, 상대 경로 포스트를 참조해주세요.

위와 같이 객체를 생성했다고 해서 없던 파일이 파로 생기거나, 바로 작업을 할 수 있는 것은 아닙니다. exists() 메소드를 통해서 지정한 파일이 존재하고 있는지 아닌지를 판별하고 그 결과에 따라서 추가적인 작업을 수행하게 됩니다.

file.exists() == false

file.exists() == false의 경우에는 다음 메소드들을 통해 파일, 디렉토리를 생성할 수 있습니다.

메소드설명
boolean createNewFile()새 파일 생성
boolean mkdir()새 디렉토리 생성
boolean mkdirs()지정된 경로의 모든 존재하지 않는 디렉토리 생성

file.exists() == true

file.exists() == true의 경우에는 다음 메소드들을 통해 파일, 디렉토리를 조작할 수 있습니다.

메소드설명
boolean delete()파일 또는 디렉토리 삭제
boolean canExecute()실행 가능한 파일인지 여부 반환
boolean canRead()읽을 수 있는 파일인지 여부 반환
boolean canWrite()쓸 수 있는(저장, 수정) 파일인지 여부 반환
String getName()파일 이름 취득
String getParent()부모 디렉토리 취득
File getParentFile()부모 디렉토리를 File 객체로 반환
String getPath()전체 경로 취득
boolean isDirectory()File 객체가 디렉토리인지 판별
boolean isFile()File 객체가 파일인지 판별
boolean isHidden()File 객체가 숨겨진 파일인지 판별
long lastModified()최근 수정 날짜, 시간 반환
long length()파일 크기 취득
String[] list()디렉토리 내의 파일, 하위 디렉토리들을 String 배열로 반환
인수로 filter를 전달해서 필터링으로 조건부 반환 가능
File[] listFiles()디렉토리 내의 파일, 하위 디렉토리들을 File 배열로 반환
인수로 filter를 전달해서 필터링으로 조건부 반환 가능

Files 클래스

Files 클래스는 정적 메소드로만 구성되어 있는 클래스이기에 File 처럼 객체를 생성해서 이용할 필요가 없습니다.

정적 메소드들에는 복사(copy()), 파일/디렉토리 생성(createXxxxx()), 이동(move()), 삭제(delete()), 검색(exists()), 속성, 디렉토리 탐색, 데이터 입출력에 관한 엄청 많은 메소드들이 정의되어 있습니다. 메소드가 엄청 많기에 필요에 따라 공식 문서에서 검색하면서 사용하시길 바랍니다.

Path 객체

Files의 정적 메소드들의 공통점으로는 매개변수로 Path 객체를 사용한다는 점 입니다. Path 객체는 파일이나 디렉토리의 경로에 대한 정보를 가지고 있는 객체입니다. 경로 정보는 정적 메소드 get()을 통해서 얻을 수 있습니다.

Path path = Paths.get("파일/디렉토리 경로");

0개의 댓글