今天我们将研究如何在Java中获得文件大小。
Java 获取文件大小
有不同的类,我们可以使用的Java获取文件大小程序。
- Java 使用「File」类 获取文件大小 2. Java 使用「FileChannel」类 获取文件大小 3. Java 使用 Apache Commons IO 获取文件大小
Before we look into an example program to get file size, we have a sample pdf file with size 2969575 bytes.
Java 使用文件
类来获取文件大小
Java 文件长度() 方法返回字节中的文件大小. 返回值如果该文件表示目录,则未定义,所以在调用此方法以获取 Java 中的文件大小之前,请确保 file exists并且它不是目录。
1package com.journaldev.getfilesize;
2
3import java.io.File;
4
5public class JavaGetFileSize {
6
7 static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
8
9 public static void main(String[] args) {
10 File file = new File(FILE_NAME);
11 if (!file.exists() || !file.isFile()) return;
12
13 System.out.println(getFileSizeBytes(file));
14 System.out.println(getFileSizeKiloBytes(file));
15 System.out.println(getFileSizeMegaBytes(file));
16 }
17
18 private static String getFileSizeMegaBytes(File file) {
19 return (double) file.length() / (1024 * 1024) + " mb";
20 }
21
22 private static String getFileSizeKiloBytes(File file) {
23 return (double) file.length() / 1024 + " kb";
24 }
25
26 private static String getFileSizeBytes(File file) {
27 return file.length() + " bytes";
28 }
29}
使用FileChannel
类来获取Java中的文件大小
我们可以使用 FileChannel 尺寸()
方法来获取字节中的文件大小。
1package com.journaldev.getfilesize;
2
3import java.io.IOException;
4import java.nio.channels.FileChannel;
5import java.nio.file.Path;
6import java.nio.file.Paths;
7
8public class JavaGetFileSizeUsingFileChannel {
9
10 static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
11
12 public static void main(String[] args) {
13
14 Path filePath = Paths.get(FILE_NAME);
15 FileChannel fileChannel;
16 try {
17 fileChannel = FileChannel.open(filePath);
18 long fileSize = fileChannel.size();
19 System.out.println(fileSize + " bytes");
20 fileChannel.close();
21 } catch (IOException e) {
22 e.printStackTrace();
23 }
24 }
25}
Java 使用 Apache Commons IO FileUtils
类获得文件大小
如果您已经在您的项目中使用了Apache Commons IO,那么您可以使用 FileUtils sizeOf方法来获取Java中的文件大小。
1package com.journaldev.getfilesize;
2
3import java.io.File;
4
5import org.apache.commons.io.FileUtils;
6
7public class JavaGetFileSizeUsingApacheCommonsIO {
8
9 static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
10
11 public static void main(String[] args) {
12 File file = new File(FILE_NAME);
13
14 long fileSize = FileUtils.sizeOf(file);
15
16 System.out.println(fileSize + " bytes");
17 }
18}
这就是 java 获取文件大小程序的全部。
您可以从我们的 GitHub 存储库中查阅更多 Java IO 示例。