一、使用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库虽然需要导入外部库,但是提供了更多的文件操作方法;递归遍历文件夹统计文件大小可以适用于获取整个文件夹的大小。