程序员社区

Java IO教程 --- Java获取文件大小

今天我们将研究在 Java 中获取文件大小的不同方法。

Java获取文件大小

我们可以将不同的类用于 java 获取文件大小程序。他们之中有一些是;

  1. Java使用File类获取文件大小
  2. 使用FileChannel类在java中获取文件大小
  3. Java 使用 Apache Commons IOFileUtils类获取文件大小

在我们查看示例程序以获取文件大小之前,我们有一个大小为 2969575 字节的示例 pdf 文件。

file

Java使用File类获取文件大小

Java File length() 方法以字节为单位返回文件大小。如果此文件表示目录,则返回值未指定。所以在调用这个方法来获取java中的文件大小之前,请确保文件存在并且它不是目录。

下面是一个使用 File 类的简单 java 获取文件大小示例程序。

package com.journaldev.getfilesize;

import java.io.File;

public class JavaGetFileSize {

    static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

    public static void main(String[] args) {
        File file = new File(FILE_NAME);
        if (!file.exists() || !file.isFile()) return;

        System.out.println(getFileSizeBytes(file));
        System.out.println(getFileSizeKiloBytes(file));
        System.out.println(getFileSizeMegaBytes(file));
    }

    private static String getFileSizeMegaBytes(File file) {
        return (double) file.length() / (1024 * 1024) + " mb";
    }

    private static String getFileSizeKiloBytes(File file) {
        return (double) file.length() / 1024 + "  kb";
    }

    private static String getFileSizeBytes(File file) {
        return file.length() + " bytes";
    }
}

file

使用FileChannel类在java中获取文件大小

我们可以使用FileChannel size()方法来获取以字节为单位的文件大小。

package com.journaldev.getfilesize;

import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JavaGetFileSizeUsingFileChannel {

    static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

    public static void main(String[] args) {

        Path filePath = Paths.get(FILE_NAME);
        FileChannel fileChannel;
        try {
            fileChannel = FileChannel.open(filePath);
            long fileSize = fileChannel.size();
            System.out.println(fileSize + " bytes");
            fileChannel.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java 使用 Apache Commons IOFileUtils类获取文件大小

如果你已经在你的项目中使用了 Apache Commons IO,那么你可以使用FileUtils sizeOf方法来获取 java 中的文件大小。

package com.journaldev.getfilesize;

import java.io.File;

import org.apache.commons.io.FileUtils;

public class JavaGetFileSizeUsingApacheCommonsIO {

    static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

    public static void main(String[] args) {
        File file = new File(FILE_NAME);

        long fileSize = FileUtils.sizeOf(file);

        System.out.println(fileSize + " bytes");
    }
}

这就是java获取文件大小程序的全部内容。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Java IO教程 --- Java获取文件大小

一个分享Java & Python知识的社区