Miért kell ellenőriznünk, hogy létezik-e egy fájl?
Fájlműveletek (olvasás/írás/létrehozás/törlés/frissítés stb.) során sok újoncnak felmerül a kérdés, hogy miért is kell ellenőriznünk, hogy létezik-e fájl? A megfelelő válasz erre az lenne, hogy a NoSuchFileException elkerülése érdekében mindig biztonságosabb módja a fájl elérésének. Következésképpen a futásidejű kivételek elkerülése érdekében ellenőriznie kell, hogy létezik-e egy fájl, mielőtt hozzáférne.Hogyan lehet ellenőrizni a file.exists() metódussal?
A Java egy egyszerű logikai módszert kínál, a file.exists()-et , amely nem igényel paramétereket az adott elérési útvonalon lévő fájl ellenőrzéséhez. Egy fájl létezésének ellenőrzésekor tartson 3 forgatókönyvet.- A fájl megtalálható.
- A fájl nem található.
- A fájl állapota ismeretlen, ha az engedélyeket nem adják meg (biztonsági okokból).
Példa
Vessünk egy pillantást egy egyszerű kódpéldára, hogy lássuk a megvalósítást.
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());
}
}
Kimenet
A fájl létezik a "C:\Users\Lubaina\Documents\myNewTestFile.txt" címen? true A fájl létezik a "C:\Users\Lubaina\Documents\myOtherTestFile.txt" címen? hamis
Kérjük, vegye figyelembe, hogy a file.exists() metódus a „ könyvtár ” elérési utakra is működik . Ha ezzel a módszerrel ellenőriz egy érvényes könyvtár elérési utat, akkor igaz vagy hamis értéket ad vissza. A jobb megértés érdekében tekintse meg a következő kódblokkot.
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);
}
}
Kimenet
A "C:\Users\Lubaina\Documents\javaContent" könyvtár létezik. A "C:\Users\Lubaina\Documents\javaContent" erőforrás fájl? false A "C:\Users\Lubaina\Documents\myNewTestFile.txt" erőforrás fájl? igaz
Amint a kimenetből látható, a „javaContent” nevű könyvtárat az exists() metódus ellenőrizte . Tehát ha kifejezetten azt szeretné ellenőrizni, hogy egy fájl nem könyvtár-e, használhatja a Java File osztálya által biztosított isDirectory() logikai metódust .
Következtetés
A bejegyzés végére tisztában kell lennie azzal, hogyan ellenőrizheti, hogy létezik-e fájl a Java nyelven. Írhat saját programokat, hogy tesztelje és megértse ezt a funkciót. Ha már jól érzi magát, felfedezhet más módokat is a Fájl jelenlétének ellenőrzésére (pl. szimbolikus hivatkozások vagy nio osztály használatával). Sok sikert és jó kódolást! :)
További olvasnivalók: |
---|
GO TO FULL VERSION