Java Получить размер файла (с примерами)

Узнайте, как проверить размер файла или каталога в Java, используя классы ввода-вывода File, Files и класс FileUtils из Common IO.

 Файл файл = новый Файл("....");// Проверить размердлинные байты = file.length(); //1длинные байты = Files.size(file.toPath()); //2длинные байты = FileUtils.sizeOf(файл); //3// Размер дисплеяFileUtils.byteCountToDisplaySize(2333444l);

1. Проверьте размер файла с помощью File.length()

Чтобы получить размер файла, класс java.io.File предоставляет метод length(), который возвращает длину файла в байтах.

  • Мы можем получить SecurityException, если доступ на чтение файла запрещен.
  • Если файл представляет собой каталог, то возвращаемое значение не указано.
File file = new File("c:/temp/demo.txt");long bytes = file.length();

2. Проверьте размер файла с помощью Files.size()

Класс Files предоставляет простой метод size(), который действует аналогично предыдущему примеру. Он также возвращает размер файла в байтах.

Размер может отличаться от фактического размера файловой системы из-за сжатия, поддержки разреженных файлов или других причин. Этот метод также может выдать SecurityException, если доступ на чтение файла запрещен.

File file = new File("c:/temp/demo.txt");long bytes = Files.size(file.toPath());

3. Проверьте размер файла с помощью FileUtils.sizeOf() Commons IO

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

  • Если файл является обычным файлом, то размер файла возвращается в байтах.
  • Если файл является каталогом, то размер каталога вычисляется рекурсивно. Обратите внимание, что если есть какие-либо проблемы при чтении любого файла или подкаталога, то его размер не будет включен в результат.

Мы должны быть внимательны и убедиться, что каталог не слишком большой, поскольку sizeOf() не обнаружит переполнения в конечном значении размера, и может быть возвращено отрицательное значение.

File file = new File("c:/temp/demo.txt");long bytes = FileUtils.sizeOf(file);

4. Отображение форматированного вывода размера файла

Чтобы отобразить размер в отформатированном виде для конечного пользователя, мы можем выполнить форматирование самостоятельно или использовать метод FileUtils.byteCountToDisplaySize().

4.1 Пользовательское форматирование

Используйте метод String.format() для создания отформатированных выходных строк в соответствии с требованиями.

System.out.println(String.format("%,d Bytes", bytes));System.out.println(String.format("%,d KB", bytes / 1024));

4.2 Использование FileUtils.byteCountToDisplaySize()

byteCountToDisplaySize() возвращает удобочитаемую версию размера файла. Обратите внимание, что размер файла округляется до ближайшего КБ, МБ или ГБ.

System.out.println(FileUtils.byteCountToDisplaySize(2333444l)); //2 MBSystem.out.println(FileUtils.byteCountToDisplaySize(2333444555l)); //2 GB

5. Заключение

В этом коротком уроке мы научились вычислять размер файла или каталога в Java. Мы также увидели, как форматировать размер файла для отображения пользователю.

Для обычных файлов мы можем использовать классы Java IO. Для расчета размера каталогов использование FileUtils от Commons IO является отличным выбором.

Исходный код на Github

Прокрутить вверх