CodeGym /Blog Java /Random-PL /Jak sprawdzić, czy plik istnieje w Javie
Autor
Oleksandr Miadelets
Head of Developers Team at CodeGym

Jak sprawdzić, czy plik istnieje w Javie

Opublikowano w grupie Random-PL

Dlaczego musimy sprawdzać, czy plik „istnieje”?

Mając do czynienia z operacjami na plikach (odczyt/zapis/tworzenie/usuwanie/aktualizacja itp.), wielu początkujących może się zastanawiać, dlaczego w ogóle musimy sprawdzać, czy plik istnieje? Właściwą odpowiedzią na to byłoby, aby uniknąć NoSuchFileException , zawsze jest to bezpieczniejszy sposób na dostęp do pliku. W związku z tym należy sprawdzić, czy plik istnieje przed uzyskaniem do niego dostępu, aby uniknąć wyjątków w czasie wykonywania.Jak sprawdzić, czy plik istnieje w Javie — 1

Jak sprawdzić metodą file.exists()?

Java udostępnia prostą metodę logiczną, file.exists() , która nie wymaga żadnych parametrów do sprawdzenia odpowiedniego pliku w danej ścieżce. Podczas sprawdzania istnienia pliku weź pod uwagę 3 scenariusze.
  • Plik został znaleziony.
  • Plik nie został znaleziony.
  • Stan pliku jest nieznany, jeśli nie udzielono uprawnień (ze względów bezpieczeństwa).
Metoda File.exists() zwraca „ true ”, jeśli plik zostanie znaleziony. W przypadku nie odnalezienia lub braku dostępu, zwraca „ false ”.

Przykład

Przyjrzyjmy się prostemu przykładowi kodu, aby zobaczyć implementację.

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());
	}
}
Wyjście
Czy plik istnieje w „C:\Users\Lubaina\Documents\myNewTestFile.txt”? true Czy plik istnieje w „C:\Users\Lubaina\Documents\myOtherTestFile.txt”? FAŁSZ
Należy pamiętać, że metoda file.exists() działa również dla ścieżek „ katalogowych ”. Jeśli sprawdzisz prawidłową ścieżkę katalogu za pomocą tej metody, zwróci ona wartość true lub false w przeciwnym razie. Dla lepszego zrozumienia możesz rzucić okiem na następujący blok kodu.

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);
	}
}
Wyjście
Istnieje katalog „C:\Users\Lubaina\Documents\javaContent”. Czy zasób „C:\Users\Lubaina\Documents\javaContent” jest plikiem? false Czy zasób „C:\Users\Lubaina\Documents\myNewTestFile.txt” jest plikiem? PRAWDA
Jak widać z danych wyjściowych, katalog o nazwie „javaContent” został zweryfikowany za pomocą metody ist() . Jeśli więc chcesz sprawdzić, czy plik nie jest katalogiem, możesz użyć metody boolowskiej isDirectory() udostępnianej przez klasę File w Javie.

Wniosek

Do końca tego wpisu musisz wiedzieć, jak sprawdzić, czy plik istnieje w Javie. Możesz napisać własne programy, aby przetestować i zrozumieć tę funkcjonalność. Gdy już się z tym oswoisz, możesz także zbadać inne sposoby sprawdzania obecności pliku (np. przy użyciu dowiązań symbolicznych lub klasy nio). Powodzenia i szczęśliwego kodowania! :)

Więcej czytania:

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION