您的位置:

Java实现获取文件大小的方法

一、使用File.length()方法

Java中最简单的获取文件大小的方法就是使用File类中的length()方法。

代码示例:

    File file = new File("C:\\example\\test.txt");
    System.out.println("文件大小为:" + file.length() + "字节");

该方法返回的是文件的长度,单位为字节。需要注意的是,如果文件不存在或者文件大小超过了2GB,这个方法就会返回负数。

二、使用Apache Commons IO库

Apache Commons IO提供了很多有用的方法,其中一个就是获取文件大小的方法。

代码示例:

    File file = new File("C:\\example\\test.txt");
    long fileSize = FileUtils.sizeOf(file);
    System.out.println("文件大小为:" + fileSize + "字节");

需要注意的是,该方法也会返回负数,如果文件不存在也会抛出异常。

三、使用Java NIO库

Java NIO库也提供了获取文件大小的方法,与Apache Commons IO类似。

代码示例:

    Path path = Paths.get("C:\\example\\test.txt");
    long fileSize = Files.size(path);
    System.out.println("文件大小为:" + fileSize + "字节");

同样需要注意的是,该方法也会返回负数,如果文件不存在也会抛出异常。

四、文件夹大小

上面三个方法只适用于获取单个文件的大小,如果需要获取文件夹的大小,则需要对其进行递归遍历,并统计所有文件大小的和。

代码示例:

    public static long getFolderSize(File folder) {
        long size = 0;
        for (File file : folder.listFiles()) {
            if (file.isFile()) {
                size += file.length();
            } else {
                size += getFolderSize(file);
            }
        }
        return size;
    }
    // 示例
    File folder = new File("C:\\example");
    long folderSize = getFolderSize(folder);
    System.out.println("文件夹大小为:" + folderSize + "字节");

需要注意的是,该方法会递归遍历文件夹的所有子文件夹和文件,并计算其大小。同样需要注意文件不存在和大小超过2GB等情况。

五、总结

以上就是Java实现获取文件大小的几种方法,可以根据需要选择不同的方法。其中,File.length()方法最简单,但只适用于单个文件;Apache Commons IO和Java NIO库虽然需要导入外部库,但是提供了更多的文件操作方法;递归遍历文件夹统计文件大小可以适用于获取整个文件夹的大小。