Автор оригинала: 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/”