Узнайте, как проверить размер файла или каталога в 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 является отличным выбором.