Fájlméret Java-ban

1. Áttekintés

Ebben a gyors bemutatóban megtudhatjuk, hogyan szerezhetjük be fájl mérete Java-ban - a Java 7, az új Java 8 és az Apache Common IO használatával.

Végül - kapunk egy ember által olvasható ábrázolást is a fájlméretről.

2. Standard Java IO

Kezdjük egy egyszerű példával a fájl méretének kiszámításához - a File.length () módszer:

privát hosszú getFileSize (Fájl fájl) {long length = file.length (); visszatérési hossz; }

Viszonylag egyszerűen tesztelhetjük megvalósításunkat:

@Test public void whenGetFileSize_thenCorrect () {long expectedSize = 12607; Fájl imageFile = új fájl ("src / test / resources / image.jpg"); hosszú méret = getFileSize (imageFile); assertEquals (várható méret, méret); }

Vegye figyelembe, hogy alapértelmezés szerint a fájlméret bájtban kerül kiszámításra.

3. Java NIO-val

Következő - nézzük meg, hogyan használhatjuk a NIO könyvtárat a fájl méretének megszerzéséhez.

A következő példában a FileChannel.size () API a fájl méretének bájtokban történő megadásához:

@Test public void, amikorGetFileSizeUsingNioApi_thenCorrect () dobja az IOException-t {long expectedSize = 12607; Elérési út imageFilePath = Paths.get ("src / test / resources / image.jpg"); FileChannel imageFileChannel = FileChannel.open (imageFilePath); hosszú imageFileSize = imageFileChannel.size (); assertEquals (várhatóSize, imageFileSize); } 

4. Az Apache Commons IO-val

Következő - nézzük meg, hogyan lehet elérni a fájl méretét Apache Commons IO. A következő példában - egyszerűen használjuk FileUtils.sizeOf () a fájlméret megszerzéséhez:

@Test public void whenGetFileSizeUsingApacheCommonsIO_thenCorrect () {long expectedSize = 12607; Fájl imageFile = új fájl ("src / test / resources / image.jpg"); hosszú méret = FileUtils.sizeOf (imageFile); assertEquals (várható méret, méret); }

Vegye figyelembe, hogy a korlátozott biztonságú fájlok esetén FileUtils.sizeOf () a méretet nullának fogja jelenteni.

5. Az ember által olvasható méret

Végül - nézzük meg, hogyan lehet a fájlméretet felhasználó által olvashatóbban ábrázolni Apache Commons IO - nem csak méret bájtokban:

@Test public void whenGetReadableFileSize_thenCorrect () {File imageFile = new File ("src / test / resources / image.jpg"); hosszú méret = getFileSize (imageFile); assertEquals ("12 KB", FileUtils.byteCountToDisplaySize (méret)); } 

6. Következtetés

Ebben az oktatóanyagban példákat szemléltettünk a Java és az Apache Commons IO használatával a fájlméret kiszámításához a fájlrendszerben.

Ezeknek a példáknak a megvalósítása megtalálható a GitHub projektben - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.