Tìm mã nguồn cho những khác biệt mà cả hai đều thực hiện cùng một điều chính xác với 1 khác biệt lớn. Phương pháp notExist(...)
có thêm ngoại lệ để bị bắt.
Exist:
public static boolean exists(Path path, LinkOption... options) {
try {
if (followLinks(options)) {
provider(path).checkAccess(path);
} else {
// attempt to read attributes without following links
readAttributes(path, BasicFileAttributes.class,
LinkOption.NOFOLLOW_LINKS);
}
// file exists
return true;
} catch (IOException x) {
// does not exist or unable to determine if file exists
return false;
}
}
Not Exist:
public static boolean notExists(Path path, LinkOption... options) {
try {
if (followLinks(options)) {
provider(path).checkAccess(path);
} else {
// attempt to read attributes without following links
readAttributes(path, BasicFileAttributes.class,
LinkOption.NOFOLLOW_LINKS);
}
// file exists
return false;
} catch (NoSuchFileException x) {
// file confirmed not to exist
return true;
} catch (IOException x) {
return false;
}
}
Kết quả là sự khác biệt như sau:
!exists(...)
trả về nội dung tập tin không tồn tại nếu một IOException
là được ném khi cố truy xuất tệp.
notExists(...)
trả về nội dung tập tin không tồn tại bằng cách đảm bảo các cụ IOException
subexception NoSuchFileFound
được ném và rằng nó không phải là bất kỳ subexception khác trên IOException
gây ra kết quả không tìm thấy
Xin chào, tôi là nhà phát triển PHP và thực hiện một số dự án trong Java. Vì vậy, không có cách đơn giản để xác định nếu thư mục tồn tại và chắc chắn là 100%. Tôi đang sử dụng JDK 6. Tôi nghĩ Java là ngôn ngữ trưởng thành ... – BojanT