Автор оригинала: mkyong.
В Java мы можем использовать Files.size(путь) чтобы получить размер файла в байтах.
// size in bytes long bytes = Files.size(path);
1. чтобы получить размер файла в байтах. (НИО)
В этом примере используется NIO Files.size(путь)
для печати файла изображения размером 140 КБ.
package com.mkyong.io.howto; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class GetFileSize { public static void main(String[] args) { // this image is around 140kb String fileName = "/home/mkyong/Pictures/temp.png"; printFileSizeNIO(fileName); } public static void printFileSizeNIO(String fileName) { Path path = Paths.get(fileName); try { // size of a file (in bytes) long bytes = Files.size(path); System.out.println(String.format("%,d bytes", bytes)); System.out.println(String.format("%,d kilobytes", bytes / 1024)); } catch (IOException e) { e.printStackTrace(); } } }
Выход
143,041 bytes 139 kilobytes
2. Файл.длина (устаревший ввод-вывод)
В старые времена (до Java 7) мы могли использовать устаревший ввод-вывод File.length()
, чтобы получить размер файла в байтах. В этом примере байты будут отформатированы до йоттабайт , просто для удовольствия.
package com.mkyong.io.howto; import java.io.File; public class GetFileSize2 { public static void main(String[] args) { String fileName = "/home/mkyong/Pictures/temp.png"; printFileSize(fileName); } public static void printFileSize(String fileName) { File file = new File(fileName); if (file.exists()) { // size of a file (in bytes) long bytes = file.length(); long kilobytes = (bytes / 1024); long megabytes = (kilobytes / 1024); long gigabytes = (megabytes / 1024); long terabytes = (gigabytes / 1024); long petabytes = (terabytes / 1024); long exabytes = (petabytes / 1024); long zettabytes = (exabytes / 1024); long yottabytes = (zettabytes / 1024); System.out.println(String.format("%,d bytes", bytes)); System.out.println(String.format("%,d kilobytes", kilobytes)); System.out.println(String.format("%,d megabytes", megabytes)); System.out.println(String.format("%,d gigabytes", gigabytes)); System.out.println(String.format("%,d terabytes", terabytes)); System.out.println(String.format("%,d petabytes", petabytes)); System.out.println(String.format("%,d exabytes", exabytes)); System.out.println(String.format("%,d zettabytes", zettabytes)); System.out.println(String.format("%,d yottabytes", yottabytes)); } else { System.out.println("File does not exist!"); } } }
Выход
143,041 bytes 139 kilobytes 0 megabytes 0 gigabytes 0 terabytes 0 petabytes 0 exabytes 0 zettabytes 0 yottabytes
На момент написания статьи дисковое хранилище все еще находится в терабайтах, существует ли жесткий диск в петабайтах или SSD?
Рекомендации
Оригинал: “https://mkyong.com/java/how-to-get-file-size-in-java/”