본문 바로가기

JAVA

I/O - File(Path 공부)

java.nio.file.* (java.nio.file.path)

 

기본적이고 가장 많이 사용하기 때문에 매우매우매우매우매우 중요함.. 예제공부에 많은 시간을 투자하자

 

File클래스를 통해 파일과 디렉토리를 다룰 수 있음. 따라서 File인스턴스는 파일일수도 있고 디렉토리일수도 있다

 

 * File생성자 및 메서드

File(String fileName) :

주어진 문자열(fileName)을 이름으로 갖는 파일을 위한 File 인스턴스를 생성함.

파일뿐만 아니라 디렉토리도 같은 방법으로 다룰 수 있다.

여기서 FileName은 주로 경로(path)를 포함해서 지정해주지만, 파일 이름만 사용해도 된다. 이게 그 메서드임

파일 이름만 사용해서 지정해주는 경우 프로그램이 실행되는 위치가 경로(path)로 간주된다.

File(String pathName, String fileName) / File(File pathName, String fileName) : 

파일의 경로이름을 따로 분리해서 지정할 수 있도록 함.

첫번째 메서드는 String 경로이름 이고 두번째 메서드는 File 타입이므로 File 인스턴스인 경우에 사용한다.

File(URI uri) :

지정된 uri로 파일을 생성한다. uri가 뭐지? 

https://b1uffer.tistory.com/47

String getName() : 

파일 이름을 String으로 반환한다

String getPath() : 

파일의 경로(path)를 String으로 반환함

String getAbsolutePath() / File getAbsoluteFile() :

파일의 절대경로를 String / File로 반환한다

String getParent() / File getParentFile() :

파일의 조상 디렉토리를 String / File로 반환함

String getCanonicalPath / File getCanonicalFile() :

파일의 정규경로를 String / File로 반환한다

 

 * 멤버변수

static String pathSeparator : OS에서 사용하는 경로(path) 구분자. 윈도우는 ";" 유닉스는 ":"

static char pathSeparatorChar : 마찬가지로 경로 구분자. 윈도우 ";" , 유닉스 ":"

static String separator : 얘도 구분자. 윈도우 "\", 유닉스 "/"

static char separatorChar : 구분자. 윈도우 "\", 유닉스 "/"

 

 새로운 파일을 생성하기 위해서는 1. File 인스턴스를 생성한 다음, 2. 출력스트림을 생성하거나 / createNewFile()을 호출해야함

거기에 쓰이는 메서드들이다. 못외우니까 쓰면서 눈으로 보자

boolean canRead() : 읽을 수 있는 파일인지 검사함

boolean canWrite() : 쓸 수 있는 파일인지 검사함

boolean canExecute() : 실행할 수 있는 파일인지 검사함

int compareTo(File pathname) : 주어진 파일 또는 디렉토리를 검사함.

같으면 0을 반환하며, 다르면 1 또는 -1을 반환함. Unix는 대소문자를 구별하며, Windows는 구별하지 않는다.

boolean exists() : 파일이 존재하는지 검사함.

boolean isAbsolute() : 파일 또는 디렉토리가 절대경로명으로 지정되었는지 확인함.

boolean isDirectory() : 디렉토리인지 확인함

boolean isFile() : 파일인지 확인함

boolean isHidden() : 파일의 속성이 '숨김'인지 확인한다. 파일이 존재하지 않으면 false를 반환함.

boolean createNewFile() : 아무런 내용이 없는 새로운 파일을 생성함.

단, 생성하는 파일이 이미 존재한다면 생성되지 않는다.

File f = new File("C:\\Users\\index\\Desktop\\springBoot\\FileEx1.java");

f.createNewFile();

static File createTempFile(String prefix, String suffix) : 임시파일을 시스템의 임시 디렉토리에 생성함.

static File createTempFile(String prefix, String suffix, File directory) : 임시파일을 시스템의 임시 디렉토리에 생성함

boolean delete() : 파일을 삭제함

void deleteOnExit() : 응용 프로그램 종료시 파일을 삭제함. 실행 시 작업에 사용된 임시파일을 삭제하는데 사용됨.

boolean equals(Object obj) : 주어진 객체(File 인스턴스 등)가 같은 파일인지 비교함. Unix는 대소문자 구별o, windows는 구별x

long lastModified() : 파일이 마지막으로 수정된 시간으로 지정된 시간을 반환함

long length() : 파일의 크기 반환

String[] list() : 디렉토리의 파일 목록(디렉토리 포함)을 String배열로 반환함

String[] list(FilenameFilter filter) / File[] list(FilenameFilter filter) : FilenameFilter 인스턴스에 구현된 조건에 맞는 파일을 String배열 / File배열로 반환함

File[] listFiles() / File[] listFiles(FileFilter filter) / File[] listFiles(FilenameFilter f) :

디렉토리의 파일목록(디렉토리 포함)을 File배열로 반환한다. filter가 지정된 경우는 filter조건에 일치하는 파일만 반환한다.

static File[] listRoots() / long getFreeSpace() / long getTotalSpace() / long getUsableSpace() :

파일시스템의 root 목록(floppy, CD-ROM, HDD drive)을 반환한다. (A:\, C:\, D:\)

get으로 시작하는 메서드들은 File이 root일 때 비어있는 공간, 전체공간, 사용가능한 공간을 바이트단위로 반환한다.

boolean mkdir() / boolean mkdirs() : 파일에 지정된 경로로 디렉토리(폴더) 생성, 성공하면 true

mkdirs()는 필요하면 부모 디렉토리까지 생성한다.

boolean renameTo(File dest) : 지정된 파일(dest)로 이름을 변경한다.

boolean setLastModified(long t) : 파일의 마지막으로 수정된 시간을 지정된 시간(t)으로 변경한다.

Path toPath() : 파일을 Path로 변환해서 반환한다.

URI toURI() : 파일을 URI로 변환해서 반환한다.

 

boolean setExecutable(boolean executable) / boolean setExecutable(boolean executable, boolean ownerOnly) / 

boolean setReadable(boolean readable) / boolean setReadable(boolean readable, boolean ownerOnly) /

boolean setReadOnly()

boolean setWritable(boolean writable) / boolean setWritable(boolean writable, boolean ownerOnly) :

파일의 속성을 변경함. OwnerOnly가 true이면 파일의 소유자만 해당 속성을 변경할 수 있음.

 

뭐가 이렇게 많지?