CodeGym /Blog Java /Ngẫu nhiên /Cách kiểm tra xem tệp có tồn tại trong Java không

Cách kiểm tra xem tệp có tồn tại trong Java không

Xuất bản trong nhóm

Tại sao chúng ta cần kiểm tra xem một tập tin có tồn tại không?

Trong khi xử lý các thao tác với tệp (đọc/ghi/tạo/xóa/cập nhật, v.v.), nhiều người mới có thể thắc mắc tại sao chúng ta thậm chí cần kiểm tra xem tệp có tồn tại không? Phản hồi thích hợp cho điều này sẽ là, để tránh NoSuchFileException , truy cập tệp luôn là cách an toàn hơn. Do đó, bạn cần kiểm tra xem tệp có tồn tại trước khi truy cập tệp đó hay không để tránh mọi ngoại lệ trong thời gian chạy.Cách kiểm tra xem tệp có tồn tại trong Java hay không - 1

Làm cách nào để kiểm tra bằng phương thức file.exists()?

Java cung cấp một phương thức boolean đơn giản, file.exists() không yêu cầu bất kỳ tham số nào để kiểm tra tệp có liên quan trên một đường dẫn nhất định. Khi kiểm tra sự tồn tại của tệp, hãy xem xét 3 tình huống.
  • Các tập tin được tìm thấy.
  • Các tập tin không được tìm thấy.
  • Trạng thái tệp không xác định nếu quyền không được cấp (vì lý do bảo mật).
Phương thức File.exists() trả về “ true ” nếu tìm thấy tệp. Trong trường hợp không tìm thấy hoặc truy cập không thành công, nó sẽ trả về “ false ”.

Ví dụ

Chúng ta hãy xem một ví dụ mã đơn giản để xem cách triển khai.

package com.java.exists;
import java.io.File;

public class ExistsMethodInJava {

	public static void main(String[] args) {

		String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
		File file = new File(filePath);

		// check if the file exists at the file path
		System.out.println("Does File exists at \"" + filePath + "\"?\t" + file.exists());
		
		filePath = "C:\\Users\\Lubaina\\Documents\\myOtherTestFile.txt";
		File nextFile = new File(filePath);
		
		// check if the file exists at the file path
		System.out.println("Does File exists at \"" + filePath + "\"?\t" + nextFile.exists());
	}
}
đầu ra
Tệp có tồn tại ở "C:\Users\Lubaina\Documents\myNewTestFile.txt" không? ĐÚNG VẬY Tệp có tồn tại ở "C:\Users\Lubaina\Documents\myOtherTestFile.txt" không? SAI
Vui lòng lưu ý rằng phương thức file.exists() cũng hoạt động đối với các đường dẫn “ thư mục ”. Nếu bạn kiểm tra một đường dẫn thư mục hợp lệ bằng phương thức này, nó sẽ trả về true hoặc ngược lại là false. Để hiểu rõ hơn, bạn có thể xem qua khối mã sau.

package com.java.exists;
import java.io.File;

public class CheckFileExists {

	// check if the "file" resource exists and not "directory"
	public static boolean checkFileExists(File file) {
		return file.exists() && !file.isDirectory();
	}

	public static void main(String[] args) {

		String directoryPath = "C:\\Users\\Lubaina\\Documents\\javaContent";
		File direcotry = new File(directoryPath);

		// check if the directory exists at the dir path
		if (direcotry.exists()) {
			System.out.println("Direcotry at \"" + directoryPath + "\" exists.\n");
		} else {
			System.out.println("Direcotry at \"" + directoryPath + "\" does not exist.\n");
		}

		// check if the resource present at the path is a "file" not "directory"
		boolean check = checkFileExists(direcotry);
		System.out.println("Is the resource \"" + direcotry + "\" a File? " + check);

		String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
		File file = new File(filePath);
		check = checkFileExists(file);
		System.out.println("Is the resource \"" + file + "\" a File? " + check);
	}
}
đầu ra
Thư mục tại "C:\Users\Lubaina\Documents\javaContent" tồn tại. Tài nguyên "C:\Users\Lubaina\Documents\javaContent" có phải là Tệp không? SAI Tài nguyên "C:\Users\Lubaina\Documents\myNewTestFile.txt" có phải là Tệp không? ĐÚNG VẬY
Như bạn có thể thấy từ đầu ra, Thư mục có tên “javaContent” đã được xác thực bằng phương thức tồn tại() . Vì vậy, nếu bạn đặc biệt muốn kiểm tra xem một tệp có phải là một thư mục hay không, bạn có thể sử dụng phương thức boolean isDirectory() do lớp Tệp trong Java cung cấp.

Phần kết luận

Đến cuối bài đăng này, bạn phải làm quen với cách kiểm tra xem một tệp có tồn tại trong Java hay không. Bạn có thể viết các chương trình của riêng mình để kiểm tra và hiểu chức năng này. Khi bạn cảm thấy thoải mái với nó, bạn cũng có thể khám phá các cách khác để kiểm tra sự hiện diện của Tệp (ví dụ: sử dụng liên kết tượng trưng hoặc lớp nio). Chúc may mắn và mã hóa hạnh phúc! :)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION