Veličina datoteke na Javi

1. Pregled

U ovom brzom vodiču naučit ćemo kako doći do veličina datoteke na Javi - koristeći Javu 7, novu Javu 8 i Apache Common IO.

Napokon - dobit ćemo i čitljiv prikaz veličine datoteke.

2. Standardni Java IO

Počnimo s jednostavnim primjerom izračuna veličine datoteke - pomoću File.length () metoda:

private long getFileSize (datoteka datoteke) {long length = file.length (); povratna duljina; }

Svoju implementaciju možemo testirati relativno jednostavno:

@Test javna void whenGetFileSize_thenCorrect () {long očekujeSize = 12607; Datoteka imageFile = nova datoteka ("src / test / resources / image.jpg"); duga veličina = getFileSize (imageFile); assertEquals (očekivanaVeličina, veličina); }

Imajte na umu da se prema zadanim postavkama veličine datoteka izračunavaju u bajtovima.

3. Uz Java NIO

Dalje - pogledajmo kako koristiti NIO knjižnicu za dobivanje veličine datoteke.

U sljedećem ćemo primjeru koristiti FileChannel.size () API za dobivanje veličine datoteke u bajtovima:

@Test public void whenGetFileSizeUsingNioApi_thenCorrect () baca IOException {long očekujeSize = 12607; Put imageFilePath = Paths.get ("src / test / resources / image.jpg"); FileChannel imageFileChannel = FileChannel.open (imageFilePath); long imageFileSize = imageFileChannel.size (); assertEquals (očekuje seSize, imageFileSize); } 

4. S Apache Commons IO

Dalje - pogledajmo kako dobiti veličinu datoteke pomoću Apache Commons IO. U sljedećem primjeru - mi jednostavno koristimo FileUtils.sizeOf () da biste dobili veličinu datoteke:

@Test javna void whenGetFileSizeUsingApacheCommonsIO_thenCorrect () {long očekujeSize = 12607; Datoteka imageFile = nova datoteka ("src / test / resources / image.jpg"); duga veličina = FileUtils.sizeOf (imageFile); assertEquals (očekivanaVeličina, veličina); }

Imajte na umu da za sigurnosno ograničene datoteke FileUtils.sizeOf () prijavit će veličinu kao nulu.

5. Čovjeku čitljiva veličina

Konačno - pogledajmo kako pomoću korisnika dobiti čitljiviji prikaz veličine datoteke Apache Commons IO - ne samo veličina u bajtovima:

@Test public void whenGetReadableFileSize_thenCorrect () {File imageFile = new File ("src / test / resources / image.jpg"); duga veličina = getFileSize (imageFile); assertEquals ("12 KB", FileUtils.byteCountToDisplaySize (veličina)); } 

6. Zaključak

U ovom uputstvu ilustrirali smo primjere korištenja Java i Apache Commons IO za izračunavanje veličine datoteke u datotečnom sustavu.

Implementacija ovih primjera može se naći u projektu GitHub - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.


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