CodeGym /Java блог /Случаен /Как да проверите дали файлът съществува в Java
John Squirrels
Ниво
San Francisco

Как да проверите дали файлът съществува в Java

Публикувано в групата

Защо трябва да проверяваме дали даден файл „съществува?“

Докато се занимават с файлови операции (четене/запис/създаване/изтриване/актуализиране и т.н.), много начинаещи могат да се чудят защо изобщо трябва да проверяваме дали даден файл съществува? Подходящият отговор на това би бил, за да се избегне NoSuchFileException , винаги е по-безопасен начин за достъп до файл. Следователно, трябва да проверите дали даден файл съществува, преди да получите достъп до него, за да избегнете изключения по време на изпълнение.Как да проверите дали файлът съществува в Java - 1

Как да проверя с помощта на метода file.exists()?

Java предоставя прост булев метод, file.exists() , който не изисква ниHowви параметри за проверка на съответния файл по даден път. Когато проверявате за съществуването на файл, вземете под внимание 3 сценария.
  • Файлът е намерен.
  • Файлът не е намерен.
  • Състоянието на file е неизвестно, ако не са дадени разрешения (поради съображения за сигурност).
Методът File.exists() връща „ истина “, ако файлът бъде намерен. В случай, че не е намерен or неуспешен достъп, той връща „ false “.

Пример

Нека да разгледаме прост пример на code, за да видим изпълнението.

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());
	}
}
Изход
Файлът съществува ли в "C:\Users\Lubaina\Documents\myNewTestFile.txt"? вярно Файлът съществува ли в "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? невярно
Моля, имайте предвид, че методът file.exists() също работи за пътеки „ директория “. Ако проверите валиден път на директория с този метод, той ще върне true or в противен случай false. За по-добро разбиране можете да разгледате следния блок от code.

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);
	}
}
Изход
Съществува директория в "C:\Users\Lubaina\Documents\javaContent". Ресурсът "C:\Users\Lubaina\Documents\javaContent" файл ли е? false Ресурсът "C:\Users\Lubaina\Documents\myNewTestFile.txt" файл ли е? вярно
Както можете да видите от изхода, директорията с име „javaContent“ е валидирана от метода exists() . Така че, ако конкретно искате да проверите дали даден файл не е директория, можете да използвате булевия метод isDirectory() , предоставен от класа File в Java.

Заключение

До края на тази публикация трябва да сте запознати с това How да проверите дали даден файл съществува в Java. Можете да напишете свои собствени програми, за да тествате и разберете тази функционалност. След като се почувствате добре с това, можете да проучите и други начини за проверка на наличието на файл (напр. използване на символни връзки or nio клас). Успех и приятно codeиране! :)
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION