Ukuran File di Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar cara mendapatkan ukuran file di Java - menggunakan Java 7, Java 8 baru, dan Apache Common IO.

Terakhir - kita juga akan mendapatkan representasi ukuran file yang dapat dibaca manusia.

2. Standar Java IO

Mari kita mulai dengan contoh sederhana menghitung ukuran file - menggunakan metode File.length () :

private long getFileSize(File file) { long length = file.length(); return length; }

Kami dapat menguji penerapan kami dengan relatif sederhana:

@Test public void whenGetFileSize_thenCorrect() { long expectedSize = 12607; File imageFile = new File("src/test/resources/image.jpg"); long size = getFileSize(imageFile); assertEquals(expectedSize, size); }

Perhatikan bahwa, secara default, ukuran file dihitung dalam byte.

3. Dengan Java NIO

Selanjutnya - mari kita lihat cara menggunakan pustaka NIO untuk mendapatkan ukuran file.

Dalam contoh berikut, kita akan menggunakan FileChannel.size () API untuk mendapatkan ukuran file dalam byte:

@Test public void whenGetFileSizeUsingNioApi_thenCorrect() throws IOException { long expectedSize = 12607; Path imageFilePath = Paths.get("src/test/resources/image.jpg"); FileChannel imageFileChannel = FileChannel.open(imageFilePath); long imageFileSize = imageFileChannel.size(); assertEquals(expectedSize, imageFileSize); } 

4. Dengan Apache Commons IO

Selanjutnya - mari kita lihat bagaimana cara mendapatkan ukuran file menggunakan Apache Commons IO . Dalam contoh berikut - kami cukup menggunakan FileUtils.sizeOf () untuk mendapatkan ukuran file:

@Test public void whenGetFileSizeUsingApacheCommonsIO_thenCorrect() { long expectedSize = 12607; File imageFile = new File("src/test/resources/image.jpg"); long size = FileUtils.sizeOf(imageFile); assertEquals(expectedSize, size); }

Perhatikan bahwa, untuk file yang dibatasi keamanan, FileUtils.sizeOf () akan melaporkan ukuran sebagai nol.

5. Ukuran Terbaca Manusia

Terakhir - mari kita lihat bagaimana mendapatkan representasi yang lebih mudah dibaca pengguna dari ukuran file menggunakan Apache Commons IO - bukan hanya ukuran dalam byte:

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

6. Kesimpulan

Dalam tutorial ini, kami mengilustrasikan contoh penggunaan Java dan Apache Commons IO untuk menghitung ukuran file dalam sistem file.

Implementasi contoh-contoh ini dapat ditemukan di proyek GitHub - ini adalah proyek berbasis Maven, jadi semestinya mudah untuk mengimpor dan menjalankannya apa adanya.