Java 에서 읽기 위해 파일을 열기 전에 파일이 존재하는지 어떻게 확인할 수 있습니까 ( Perl 과 동일
-e $filename
)?
SO에 대한 유일한 비슷한 질문 은 파일 작성을 다루므로 FileWriter
여기에는 해당되지 않습니다.
가능한 경우 “파일을 열고 텍스트에서 ‘파일 없음’을 확인하는 예외가 발생하면 catch하는 API 호출과 달리 true / false를 반환 하는 실제 API 호출을 선호 하지만 후자의.
답변
사용 java.io.File
:
File f = new File(filePathString);
if(f.exists() && !f.isDirectory()) {
// do something
}
답변
isFile()
대신에 사용 하는 것이 좋습니다 exists()
. 대부분의 경우 경로가 파일이 아닌 파일을 가리키는 지 확인하려고합니다. 그 기억 exists()
의 디렉토리 경로 점의 경우 true를 돌려줍니다.
new File("path/to/file.txt").isFile();
new File("C:/").exists()
true를 반환하지만 파일로 열고 읽을 수는 없습니다.
답변
Java SE 7에서 nio를 사용하여
import java.nio.file.*;
Path path = Paths.get(filePathString);
if (Files.exists(path)) {
// file exist
}
if (Files.notExists(path)) {
// file is not exist
}
두 경우 exists
와 notExists
반환 허위, 파일의 존재는 확인할 수 없습니다. (이 경로에 대한 액세스 권한이 없을 수 있음)
path
디렉토리 또는 일반 파일인지 확인할 수 있습니다 .
if (Files.isDirectory(path)) {
// path is directory
}
if (Files.isRegularFile(path)) {
// path is regular file
}
이 Java SE 7 자습서를 확인하십시오 .
답변
자바 8 :
if(Files.exists(Paths.get(filePathString))) {
// do something
}
답변
File f = new File(filePathString);
실제 파일은 생성되지 않습니다. File 클래스의 객체를 만듭니다. 실제로 파일을 작성하려면 명시 적으로 파일을 작성해야합니다.
f.createNewFile();
따라서 f.exists()
이러한 파일이 존재하는지 여부를 확인하는 데 사용할 수 있습니다.
답변
f.isFile() && f.canRead()
답변
이를 달성하기위한 여러 가지 방법이 있습니다.
-
단지 존재의 경우. 파일 또는 디렉토리 일 수 있습니다.
new File("/path/to/file").exists();
-
파일 확인
File f = new File("/path/to/file"); if(f.exists() && f.isFile()) {}
-
디렉토리를 확인하십시오.
File f = new File("/path/to/file"); if(f.exists() && f.isDirectory()) {}
-
자바 7 방식.
Path path = Paths.get("/path/to/file"); Files.exists(path) // Existence Files.isDirectory(path) // is Directory Files.isRegularFile(path) // Regular file Files.isSymbolicLink(path) // Symbolic Link