Hogyan lehet letölteni a fájl kiterjesztését Java-ban

1. Áttekintés

Ebben a gyors bemutatóban megmutatjuk, hogyan lehet programszerűen megszerezni a fájlkiterjesztést a Java-ban. A probléma három fő megközelítésére összpontosítunk.

Megvalósításunkban a karakterek az utolsó.' visszaküldik.

Ezért gyors példaként, ha a fájlnevünk az jarvis.txt akkor visszaadja a Húrtxt ” mint a fájl kiterjesztése.

2. A fájlkiterjesztés megszerzése

Minden megközelítésnél megtanuljuk, hogyan kell megvalósítani, és nyomon követjük a történteket két különleges esetben:

  • amikor egy fájlnévnek nincs kiterjesztése, például a makefile fájl
  • és ha egy fájlnév csak a kiterjesztésből áll, mint pl .gitignore vagy .DS_Store.

2.1. Egyszerű Húr Kezelési megközelítés

Ezzel a megközelítéssel egy egyszerűt fogunk használni Húr kezelési megközelítés a kiterjesztés megtalálásához:

public Opcionális getExtensionByStringHandling (String fájlnév) {return Optional.ofNullable (fájlnév) .filter (f -> f.contains (".")) .map (f -> f.substring (filename.lastIndexOf (".") + 1 )); } 

Ez a módszer ellenőrzi a ‘’ pontot. előfordulása az adott fájlnévben.

Ha létezik, akkor megtalálja a „” pont utolsó pozícióját. és utána adja vissza a karaktereket, az utolsó „” utáni karaktereket. fájlkiterjesztésként ismert.

Különleges esetek:

  1. Nincs kiterjesztés - ez a módszer üreset ad vissza Húr
  2. Csak kiterjesztés - ez a módszer visszaadja a Húr a pont után pl. „Gitignore”

2.2. FilenameUtils.getExtension az Apache Commons IO-tól

A második megközelítésben megtaláljuk a kiterjesztést az Apache Commons IO könyvtár által biztosított segédprogram segítségével:

public String getExtensionByApacheCommonLib (String fájlnév) {return FilenameUtils.getExtension (fájlnév); }

Itt a fájlnév helyett megadhatjuk a fájl teljes elérési útját is például.C: /baeldung/com/demo.java“.

A módszer, a metódus getExtension (karakterlánc) ellenőrzi, hogy az adott fájl név üres vagy sem.

Ha fájl név üres vagy null, getExtension (karakterlánc fájlnév) visszaadja a megadott példányt. Ellenkező esetben a fájlnév kiterjesztését adja vissza.

Ehhez a módszert használja indexOfExtension (karakterlánc) amelyet viszont felhasznál lastIndexof (char) hogy megtalálja a ’.’ utolsó előfordulását. Ezeket a módszereket mindkettő biztosítja FilenameUtils.

Ez a módszer egy másik módszer használatával azt is ellenőrzi, hogy az utolsó pont után nincs-e könyvtárelválasztó indexOfLastSeparator (String), amely egy Unix vagy Windows formátumú fájlt fog kezelni.

Különleges esetek:

  1. Nincs kiterjesztés - ez a módszer üres karakterláncot ad vissza.
  2. Csak kiterjesztés - ez a módszer visszaadja a Húr a pont után pl. „Gitignore”

2.3. A guavai könyvtár használata

Ebben az utolsó megközelítésben a Guava könyvtár segítségével fogjuk megtalálni a kiterjesztést.

Guava könyvtár hozzáadásához a következő függőséget adhatjuk hozzá pom.xml:

 com.google.guava guava 24.1.1-jre 

A legfrissebb függőségről megnézhetjük a Maven Central-ot.

A könyvtár hozzáadása után egyszerűen használhatjuk getFileExtension módszer:

public String getExtensionByGuava (String fájlnév) {return Files.getFileExtension (fájlnév); } 

A módszer, a metódus getFileExtension (karakterlánc) először ellenőrzi, hogy az adott fájl név üres.

Ha a fájl név nem üres, akkor létrehoz egy File példányt az adott konvertálásával fájl név absztrakt útvonalnévvé és hívássá FájlokgetName () metódus, amely visszaadja a fájl nevét, amelyet ezzel az absztrakt útvonalnévvel jelölünk, vagy az üres karakterláncot, ha az adott fájl név üres.

Ezen visszatérési érték alapján beolvassa a „.” Utolsó előfordulásának indexét. használva Húr osztály beépített módszere lastIndexOf (char).

Különleges esetek:

  1. Nincs kiterjesztés - ez a módszer üreset ad vissza Húr
  2. Csak kiterjesztés - ez a módszer a Húr a pont után pl. „Gitignore”

3. Következtetés

Amikor az Apache között válogat Commons és Gujávafa, miközben mindkét könyvtárnak van néhány közös jellemzője, és olyan funkcionalitással is rendelkeznek, amely hiányzik az alternatívájukból.

Ez azt jelenti, hogy ha bizonyos funkciókra van szükség, válassza ki azt, amelyik rendelkezik vele. Ellenkező esetben, ha több egyéni forgatókönyvre van szükség, válassza ki azt, amelyik a legtöbbet teljesíti a szükségesek közül, és bátran csomagolja be saját megvalósításával a kívánt eredmény elérése érdekében.

Ezenkívül olvassa el a Githubról szóló cikk összes példáját.