Veľkosť súboru v Jave

1. Prehľad

V tomto rýchlom výučbe sa dozvieme, ako získať veľkosť súboru v Jave - pomocou Java 7, nového Java 8 a Apache Common IO.

Nakoniec - dostaneme tiež ľudsky čitateľnú reprezentáciu veľkosti súboru.

2. Štandardné Java IO

Začnime jednoduchým príkladom výpočtu veľkosti súboru - pomocou File.length () metóda:

private long getFileSize (File file) {long length = file.length (); dĺžka návratu; }

Našu implementáciu môžeme relatívne jednoducho otestovať:

@Test public void whenGetFileSize_thenCorrect () {dlho očakávaná veľkosť = 12607; Súbor imageFile = nový súbor ("src / test / resources / image.jpg"); dlhá veľkosť = getFileSize (imageFile); assertEquals (expectSize, size); }

Upozorňujeme, že predvolene sa veľkosť súborov počíta v bajtoch.

3. S Java NIO

Ďalej - pozrime sa, ako používať knižnicu NIO na získanie veľkosti súboru.

V nasledujúcom príklade použijeme FileChannel.size () API na získanie veľkosti súboru v bajtoch:

@Test public void whenGetFileSizeUsingNioApi_thenCorrect () vyvolá IOException {dlho očakávaná veľkosť = 12607; Path imageFilePath = Paths.get ("src / test / resources / image.jpg"); FileChannel imageFileChannel = FileChannel.open (imageFilePath); long imageFileSize = imageFileChannel.size (); assertEquals (expectSize, imageFileSize); } 

4. S Apache Commons IO

Ďalej - pozrime sa, ako zistiť veľkosť súboru pomocou Apache Commons IO. V nasledujúcom príklade - jednoducho použijeme FileUtils.sizeOf () získať veľkosť súboru:

@Test public void whenGetFileSizeUsingApacheCommonsIO_thenCorrect () {dlho očakávaná veľkosť = 12607; Súbor imageFile = nový súbor ("src / test / resources / image.jpg"); dlhá veľkosť = FileUtils.sizeOf (imageFile); assertEquals (expectSize, size); }

Upozorňujeme, že v prípade súborov s obmedzeným zabezpečením FileUtils.sizeOf () nahlási veľkosť ako nulu.

5. Človekom čitateľná veľkosť

Na záver sa pozrime, ako získať používateľom čitateľnejšiu reprezentáciu veľkosti súboru Apache Commons IO - nielen veľkosť v bajtoch:

@ Test public void whenGetReadableFileSize_thenCorrect () {File imageFile = new File ("src / test / resources / image.jpg"); dlha velkost = getFileSize (imageFile); assertEquals ("12 KB", FileUtils.byteCountToDisplaySize (veľkosť)); } 

6. Záver

V tomto tutoriáli sme ilustrovali príklady použitia Java a Apache Commons IO na výpočet veľkosti súboru v súborovom systéme.

Implementáciu týchto príkladov možno nájsť v projekte GitHub - jedná sa o projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.


$config[zx-auto] not found$config[zx-overlay] not found