Java程序:获取指定文件的大小(字节、千字节和兆字节)


文件大小是指特定文件在特定存储设备(如硬盘)上占用的存储空间量。文件大小以字节为单位衡量。

在本节中,我们将讨论如何实现一个Java程序来获取指定文件的大小(字节、千字节和兆字节)。

理解文件大小和度量单位

字节是数字信息的最小单位。一个字节等于八位。

  • 1 千字节 (KB) = 1,024 字节

  • 1 兆字节 (MB) = 1,024 KB

  • 1 吉字节 (GB) = 1,024 MB 以及

  • 1 太字节 (TB) = 1,024 GB。

文件的大小通常取决于文件类型及其包含的数据量。例如,文本文档的大小可能只有几千字节,而高分辨率图像或视频文件的大小则可能为几个吉字节。

文件是信息的集合,可能包含文本信息、图像、音频、视频、程序代码等数据。任何软件应用程序都可以访问这些数据以执行读取、写入、更新、删除等操作。

语法

创建文件类对象

File file = new File("file_path");

创建BufferedInputStream类对象

BufferedInputStream input = new BufferedInputStream(new FileInputStream("filename"));

length() − 此方法返回文件的大小(以字节为单位)。

File file = new File("/example.txt");
long fileSize = file.length();

exists() − 此方法检查文件是否存在,并返回布尔值。

File file = new File("/example.txt");
if (file.exists()) {
  System.out.println("File exists.");
}

read() − 此方法用于从输入流中读取字节。

FileInputStream input = new FileInputStream(filePath)
byte[] buffer = new byte[10];
int bytesRead = input.read(buffer); 

size() − 此方法返回文件的大小(以字节为单位)。

Path path = Paths.get("/path/to/file");
long fileSize = Files.size(path);

现在,我们将实现不同的Java方法来查找指定文件的大小(字节、千字节和兆字节)。

方法 1:使用 java.io 包

在这种方法中,我们将使用File 类(属于java.io 包)以及不同的内置函数来获取文件的大小。

算法

  • 使用 File 类创建一个文件对象。

  • 使用 exists() 方法检查文件是否存在,如果存在,则使用 length() 方法查找大小。

  • 打印以字节、千字节、兆字节为单位的大小。

  • 如果文件不存在,则打印“文件未找到”。

示例

在这个例子中,我们使用File类创建了一个文件对象,我们将使用exists()函数检查文件是否存在,如果存在,则使用length()函数计算文件长度并将其存储在‘sizebytes’变量中。我们将使用‘sizebytes’打印文件大小(以字节为单位)。千字节大小为‘sizebytes’除以1024,兆字节大小为‘sizebytes’除以1024*1024。

import java.io.File;
public class Main{
   public static void main(String[] args) {
      File f = new File("C:/example.txt");
      if (f.exists()) {
         long sizebytes = f.length();
         System.out.println("File size in bytes is equal to : " + sizebytes);
         System.out.println("File size in kilobytes is equal to : " + (sizebytes/ 1024));
         System.out.println("File size in megabytes is equal to : " + (sizebytes / (1024 * 1024)));
      } else {
         System.out.println("File not found.");
      }
   }
}

输出

File size in bytes is equal to : 1048576 
File size in kilobytes is equal to : 1024
File size in megabytes is equal to : 1	

方法 2:使用 java.nio 包

在这种方法中,我们将使用Path类(属于java.nio 包)以及不同的内置函数来获取文件的大小。

算法

  • 使用 Path 类的 get() 方法创建一个路径对象。

  • 使用 size() 方法查找大小,并打印以字节、千字节、兆字节为单位的大小。

  • 如果出现异常,则打印异常信息。

示例

在这个例子中,我们使用Path类创建了一个文件对象,我们将使用size()函数获取文件大小并将其存储在‘sizebytes’变量中。我们将使用‘sizebytes’打印文件大小(以字节为单位)。千字节大小为‘sizebytes’除以1024,兆字节大小为‘sizebytes’除以1024*1024。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
   public static void main(String[] args) {
      Path p = Paths.get("C:/example.txt");
      try {
         long sizebytes = Files.size(p);
         System.out.println("File size in bytes is equal to : " + sizebytes);
         System.out.println("File size in kilobytes is equal to : " + (sizebytes/ 1024));
         System.out.println("File size in megabytes is equal to : " + (sizebytes / (1024 * 1024)));
      } catch (Exception e) {
         System.out.println("Error: " + e.getMessage());
      }
   }
}

输出

File size in bytes is equal to : 1048576 
File size in kilobytes is equal to : 1024
File size in megabytes is equal to : 1

因此,在这篇文章中,我们讨论了在Java中获取指定文件大小(字节、千字节和兆字节)的不同方法。

更新于:2024年6月26日

3K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告