中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么實現判斷并輸出文件大小

發布時間:2023-05-06 10:53:33 來源:億速云 閱讀:112 作者:iii 欄目:開發技術

這篇文章主要介紹“Java怎么實現判斷并輸出文件大小”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java怎么實現判斷并輸出文件大小”文章能幫助大家解決問題。

java判斷并輸出文件大小

有些地方需要判斷用戶上傳的文件大小或者下載文件之類的地方,這個功能還是比較實用的。

Java代碼如下:

package 包名;

import java.io.File;

public class FileAction {

    public static void main(String[] args) {

        File file = new File("chaoyue.jpeg");
        long size = file.length() / 1024;
        System.out.println("文件大小:" + size + "kb");

    }
}

java計算文件大小三種方法及優缺點比較

1、通過File 的length() 方法計算文件大小;

2、使用FileInputStream后通過FileChannel的size()方法計算文件大小;

3、通過FileInputStream的available()方法計算文件大小;

代碼示例:

package encryption;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
 
public class Test02 {
 
	public static void main(String[] args) throws IOException {
 
		// 獲取文件大小的三種方法
		
		//大文件
		String fileStr = "E:\\src\\cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso";
		//小文件
        String fileStr01 = "E:\\src\\Chrome-Goagent.7z";
		
		File file = new File(fileStr);
 
		long size01 = getFileSize01(file);
		long size02 = getFileSize02(file);
		int  size03 = getFileSize03(file);
		
		System.out.println("小文件計算文件大小");
		System.out.println("文件名稱:"+file.getName());
		System.out.println("length方法獲取文件大小:"+size01+" byte.");
		System.out.println("FileChannel方法獲取文件大小:"+size02+" byte.");
		System.out.println("available方法獲取文件大小:"+size03+" byte.");
		System.out.println("\nInteger類型數據的最大值:"+Integer.MAX_VALUE);
 
	}
 
 
	/*
	 * 獲取文件大小的方法01:
	 * 通過文件的length() 方法獲取文件大小,這個通常可以應用于本地文件的大小計算;
	 * */
	private static long getFileSize01(File file) {
 
		return file.length();
	}
 
	/*
	 * 獲取文件大小的方法02:
	 * 通過FileChannel類來獲取文件大小,這個方法通常結合輸入流相關,
	 * 因此可以用于文件網絡傳輸時實時計算文件大小;
	 * */ 
	private static long getFileSize02(File file) throws IOException {
 
		FileInputStream fis = new FileInputStream(file);
		FileChannel fc = fis.getChannel();
		return fc.size();
	}
	
	 /*
	  * 獲取文件大小的方法03:
	  * FileInputStream的available()方法看可以用于小文件的文件大小計算,
	  * 因為available()的返回值類型為int型,可能會存在溢出的情況,
	  * 所以 available()方法計算文件大小不建議使用;
	  * */
		private static int getFileSize03(File file) throws IOException {
 
			FileInputStream fis = new FileInputStream(file);
			
			return fis.available();
		}
}

計算大文件時:cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso

大文件計算文件大小

文件名稱:cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso

  • length方法獲取文件大小:3419052032 byte.

  • FileChannel方法獲取文件大小:3419052032 byte.

  • available方法獲取文件大小:2147483647 byte. 

  • Integer類型數據的最大值:2147483647

計算小文件時:Chrome-Goagent.7z

小文件計算文件大小

文件名稱:Chrome-Goagent.7z

  • length方法獲取文件大小:105959048 byte.

  • FileChannel方法獲取文件大小:105959048 byte.

  • available方法獲取文件大小:105959048 byte. 

  • Integer類型數據的最大值:2147483647

優缺點比較

1、length() 方法的返回值是long類型的,FileChannl的size()方法是long類型的,FileInputStream的available() 方法是int類型的;

2、在計算大文件的時候不能使用FileInputStream的available() 方法,這樣計算結果會超出int類型最大值會產生溢出導致計算結果不準確;

3、在計算大文件的時候建議使用方法一和方法三,使用方法三會產生int類型溢出錯誤;

4、同時,在計算本地文件大小的時候建議使用方法一,length() 的方式計算文件大小;在計算網絡傳輸文件的時候建議使用FileChannel的size() 方法,方法二包含在FileinputStream中使用具有較好的網絡性能。

關于“Java怎么實現判斷并輸出文件大小”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桦甸市| 清水河县| 拜泉县| 霍山县| 探索| 越西县| 延川县| 巫山县| 江达县| 舞阳县| 宜城市| 临汾市| 渭源县| 石台县| 弥渡县| 平原县| 澄城县| 宁夏| 乌兰察布市| 江城| 康定县| 黔西| 右玉县| 松江区| 自治县| 周口市| 邹城市| 威信县| 金塔县| 宜良县| 金昌市| 皮山县| 织金县| 大渡口区| 泸溪县| 永兴县| 龙南县| 扶余县| 化隆| 新源县| 江都市|