在 Java 中获取文件大小
Java 提供了不同的方法来获取文件的字节大小。 本教程演示了在 Java 中获取文件大小的不同方法。
使用 Java IO 的文件类获取文件大小
Java IO 包的 File 类提供了以字节为单位获取文件大小的功能。 File 类有一个方法 length,它以字节为单位返回文件的大小。
如果 File 是一个目录,则 length() 方法将返回一个未指定的值。 所以在检查大小之前,请确保文件存在并且不是目录。
我们选择了一个大小为 240 KB 的文件 jiyik.pdf。 让我们尝试一个例子来使用 Java 的 File 类来检查这个文件的大小:
package jiyik;
import java.io.File;
public class Example {
public static void main(String[] args) {
String File_Name = "delftstack.pdf";
Get_FileSize(File_Name);
}
public static void Get_FileSize(String File_Name) {
File Demo_File = new File(File_Name);
if (Demo_File.exists()) {
// size of a file using different units
long File_Bytes = Demo_File.length();
long Kilo_Bytes = (File_Bytes / 1024);
long Mega_Bytes = (Kilo_Bytes / 1024);
long Giga_Bytes = (Mega_Bytes / 1024);
long Tera_Bytes = (Giga_Bytes / 1024);
long Peta_Bytes = (Tera_Bytes / 1024);
long Exa_Bytes = (Peta_Bytes / 1024);
long Zetta_Bytes = (Exa_Bytes / 1024);
long Yotta_Bytes = (Zetta_Bytes / 1024);
System.out.println(String.format("%,d Size in bytes", File_Bytes));
System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
} else {
System.out.println("The input File does not exist!");
}
}
}
上面的代码将首先使用 Java IO 以字节为单位计算给定文件的大小,然后将其转换为其他单位。 查看输出:
245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes
使用 Java NIO 的文件类获取文件大小
Java NIO 包类 Files 有一个方法 size()
来获取文件的大小。 size()
方法将以字节为单位返回文件大小。
让我们尝试使用相同文件的示例:
package jiyik;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Example {
public static void main(String[] args) {
String File_Name = "delftstack.pdf";
Get_FileSize(File_Name);
}
public static void Get_FileSize(String File_Name) {
Path File_Path = Paths.get(File_Name);
try {
// size of a file using different units
long File_Bytes = Files.size(File_Path);
long Kilo_Bytes = (File_Bytes / 1024);
long Mega_Bytes = (Kilo_Bytes / 1024);
long Giga_Bytes = (Mega_Bytes / 1024);
long Tera_Bytes = (Giga_Bytes / 1024);
long Peta_Bytes = (Tera_Bytes / 1024);
long Exa_Bytes = (Peta_Bytes / 1024);
long Zetta_Bytes = (Exa_Bytes / 1024);
long Yotta_Bytes = (Zetta_Bytes / 1024);
System.out.println(String.format("%,d Size in bytes", File_Bytes));
System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
}
catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码使用 Java NIO 包中的 Files.size()
方法来获取 Java 文件的大小。 查看输出:
245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes
NIO 包还有另一个类 FileChannel,在 Java 中也可以用它来获取文件的大小。 它有一个类似的方法 size() 来获取 Java 中文件的大小:
package jiyik;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Example {
public static void main(String[] args) {
String File_Name = "delftstack.pdf";
Get_FileSize(File_Name);
}
public static void Get_FileSize(String File_Name) {
Path File_Path = Paths.get(File_Name);
FileChannel File_Channel;
try {
// size of a file using different units
File_Channel = FileChannel.open(File_Path);
long File_Bytes = File_Channel.size();
File_Channel.close();
long Kilo_Bytes = (File_Bytes / 1024);
long Mega_Bytes = (Kilo_Bytes / 1024);
long Giga_Bytes = (Mega_Bytes / 1024);
long Tera_Bytes = (Giga_Bytes / 1024);
long Peta_Bytes = (Tera_Bytes / 1024);
long Exa_Bytes = (Peta_Bytes / 1024);
long Zetta_Bytes = (Exa_Bytes / 1024);
long Yotta_Bytes = (Zetta_Bytes / 1024);
System.out.println(String.format("%,d Size in bytes", File_Bytes));
System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
}
catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码使用 NIO 包中的 FileChannel 类来获取以字节为单位的大小。 查看输出:
245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes
使用 Apache Commons IO 的 FileUtils 类获取文件大小
Apache Commons IO 提供了很多功能,FileUtils 是其中之一,用于处理 Java 中的文件操作。 Apache Commons 的 FileUtils 类有一个方法 Sizeof(),可以获取文件的字节大小。
让我们尝试一个使用 Apache Commons IO 获取 Java 文件大小的示例:
package jiyik;
import java.io.File;
import org.apache.commons.io.FileUtils;
public class Example {
public static void main(String[] args) {
String File_Name = "delftstack.pdf";
Get_FileSize(File_Name);
}
public static void Get_FileSize(String File_Name) {
File Demo_File = new File(File_Name);
try {
// size of a file using different units
long File_Bytes = FileUtils.sizeOf(Demo_File);
long Kilo_Bytes = (File_Bytes / 1024);
long Mega_Bytes = (Kilo_Bytes / 1024);
long Giga_Bytes = (Mega_Bytes / 1024);
long Tera_Bytes = (Giga_Bytes / 1024);
long Peta_Bytes = (Tera_Bytes / 1024);
long Exa_Bytes = (Peta_Bytes / 1024);
long Zetta_Bytes = (Exa_Bytes / 1024);
long Yotta_Bytes = (Zetta_Bytes / 1024);
System.out.println(String.format("%,d Size in bytes", File_Bytes));
System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
}
catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码使用 Java 的 FileUtils
类来获取给定文件的大小。 查看输出:
245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,