Рубрики
Без рубрики

Как получить размер файла на Java

В Java мы можем использовать “files.size”, чтобы получить размер файла в байтах.

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