Размер на файла в Java

1. Общ преглед

В този бърз урок ще научим как да получим размера на файл в Java - използвайки Java 7, новата Java 8 и Apache Common IO.

И накрая - ще получим и човешки четливо представяне на размера на файла.

2. Стандартен Java IO

Нека започнем с прост пример за изчисляване на размера на файл - с помощта на метода File.length () :

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

Можем да тестваме нашата реализация относително просто:

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

Имайте предвид, че по подразбиране размерите на файловете се изчисляват в байтове.

3. С Java NIO

След това - нека видим как да използваме библиотеката NIO, за да получим размера на файла.

В следващия пример ще използваме API на FileChannel.size (), за да получим размера на файла в байтове:

@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. С Apache Commons IO

След това - нека видим как да получите размера на файла с помощта на Apache Commons IO . В следния пример - ние просто използваме FileUtils.sizeOf (), за да получим размера на файла:

@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); }

Имайте предвид, че за файлове с ограничена сигурност FileUtils.sizeOf () ще отчете размера като нула.

5. Четим от човека размер

И накрая - нека видим как да получим по-читаво от потребителя представяне на размера на файла, използвайки Apache Commons IO - не само размер в байтове:

@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. Заключение

В този урок илюстрирахме примери за използване на Java и Apache Commons IO за изчисляване на размера на файл във файловата система.

Изпълнението на тези примери може да бъде намерено в проекта GitHub - това е проект, базиран на Maven, така че трябва да е лесно да се импортира и да се изпълнява както е.