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.