一、Java File類概述
Java中的File類提供了與文件系統交互的方法。通過該類,Java程序可以讀取文件、寫入文件、刪除文件,查詢文件屬性等。在Java程序中,可以使用File類的實例來表示文件或目錄。File實例可以是絕對路徑或相對路徑,可以是文件或目錄。
二、獲取文件大小的方法
1. length()方法
public long length()
File類中的length()方法可以獲取文件的大小,返回值的單位為字節。
示例如下:
File file = new File("C:\\test.txt"); long fileSize = file.length(); System.out.println("文件大小為:" + fileSize + "字節");
2. Apache Commons IO包中的FileSizeUtils
Apache Commons IO是一組常用的IO工具類庫,也提供了獲取文件大小的方法。FileSizeUtils類中提供了多個獲取文件大小的靜態方法。
示例如下:
File file = new File("C:\\test.txt"); long fileSize = FileUtils.sizeOf(file); System.out.println("文件大小為:" + fileSize + "字節");
3. Java NIO中的Channels和Files
Java NIO(New IO)是Java SE 1.4引入的新IO API,提供了更高效、更靈活的IO操作。Channels和Files類也可以用於獲取文件大小。
示例如下:
Path path = Paths.get("C:\\test.txt"); long fileSize = Files.size(path); System.out.println("文件大小為:" + fileSize + "字節");
三、注意事項
1. 文件不存在時的處理
如果使用File類的length()方法或Apache Commons IO包中的FileSizeUtils類獲取文件大小,當文件不存在時,會拋出FileNotFoundException異常。所以,在使用這些方法獲取文件大小時,應該先判斷文件是否存在。
示例如下:
File file = new File("C:\\test.txt"); if (file.exists()) { long fileSize = file.length(); System.out.println("文件大小為:" + fileSize + "字節"); } else { System.out.println("文件不存在"); }
2. 單位轉換
獲取到的文件大小單位是字節,如果需要將其轉換為更常見的單位(如KB、MB、GB),需要進行單位轉換。
示例如下:
long fileSize = Files.size(path); String[] units = {"B", "KB", "MB", "GB", "TB"}; int digitGroups = (int) (Math.log10(fileSize)/Math.log10(1024)); System.out.println("文件大小為:" + new DecimalFormat("#,##0.#").format(fileSize/Math.pow(1024, digitGroups)) + " " + units[digitGroups]);
四、總結
Java中提供了多種方式來獲取文件大小,常見的有調用File類的length()方法、使用Apache Commons IO包中的FileSizeUtils類、使用Java NIO中的Channels和Files類。在獲取文件大小時,應該注意文件是否存在的判斷和單位轉換的處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/235610.html