亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java如何實現(xiàn)判斷并輸出文件大小

 更新時間:2023年04月12日 08:55:27   作者:jasmyn518  
這篇文章主要介紹了Java如何實現(xiàn)判斷并輸出文件大小問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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計算文件大小三種方法及優(yōu)缺點比較

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

2、使用FileInputStream后通過FileChannel的size()方法計算文件大?。?/p>

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類型數(shù)據(jù)的最大值:"+Integer.MAX_VALUE);
 
	}
 
 
	/*
	 * 獲取文件大小的方法01:
	 * 通過文件的length() 方法獲取文件大小,這個通??梢詰糜诒镜匚募拇笮∮嬎?;
	 * */
	private static long getFileSize01(File file) {
 
		return file.length();
	}
 
	/*
	 * 獲取文件大小的方法02:
	 * 通過FileChannel類來獲取文件大小,這個方法通常結合輸入流相關,
	 * 因此可以用于文件網(wǎng)絡傳輸時實時計算文件大?。?
	 * */ 
	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類型數(shù)據(jù)的最大值:2147483647

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

小文件計算文件大小

文件名稱:Chrome-Goagent.7z

  • length方法獲取文件大小:105959048 byte.
  • FileChannel方法獲取文件大小:105959048 byte.
  • available方法獲取文件大小:105959048 byte. 
  • Integer類型數(shù)據(jù)的最大值:2147483647

優(yōu)缺點比較

1、length() 方法的返回值是long類型的,F(xiàn)ileChannl的size()方法是long類型的,F(xiàn)ileInputStream的available() 方法是int類型的;

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

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

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

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring?Cloud?使用?Resilience4j?實現(xiàn)服務熔斷的方法

    Spring?Cloud?使用?Resilience4j?實現(xiàn)服務熔斷的方法

    服務熔斷是為了保護我們的服務,比如當某個服務出現(xiàn)問題的時候,控制打向它的流量,讓它有時間去恢復,或者限制一段時間只能有固定數(shù)量的請求打向這個服務,這篇文章主要介紹了Spring?Cloud?使用?Resilience4j?實現(xiàn)服務熔斷,需要的朋友可以參考下
    2022-12-12
  • nacos配置注冊中心時指定命名空間不起作用的問題

    nacos配置注冊中心時指定命名空間不起作用的問題

    這篇文章主要介紹了nacos配置注冊中心時指定命名空間不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • Java和C#下的參數(shù)驗證方法

    Java和C#下的參數(shù)驗證方法

    下面小編就為大家?guī)硪黄狫ava和C#下的參數(shù)驗證實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java編寫緩存工具類的示例代碼

    Java編寫緩存工具類的示例代碼

    這篇文章主要為大家詳細介紹了如何基于Java編寫一個緩存工具類,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • 詳解Spring中的攔截器與過濾器

    詳解Spring中的攔截器與過濾器

    Filter?過濾器和Interceptor?攔截器是SpringBoot?的?Web?項目開發(fā)中長用到的,本文主要來和大家討論一下?Filter?與?Interceptor?的做法及它們之間的區(qū)別,需要的可以參考下
    2023-07-07
  • 詳解Java注解的實現(xiàn)與使用方法

    詳解Java注解的實現(xiàn)與使用方法

    這篇文章主要介紹了詳解Java注解的實現(xiàn)與使用方法的相關資料,希望通過本文大家能夠理解掌握Java注解的知識,需要的朋友可以參考下
    2017-09-09
  • SpringBoot項目集成xxljob實現(xiàn)全紀錄

    SpringBoot項目集成xxljob實現(xiàn)全紀錄

    XXL-JOB是一個分布式任務調(diào)度平臺,本文主要介紹了SpringBoot項目集成xxljob實現(xiàn)全紀錄,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java讀寫.properties文件解決中文亂碼問題

    Java讀寫.properties文件解決中文亂碼問題

    這篇文章主要介紹了Java讀寫.properties文件解決中文亂碼問題,非常具有實用價值,需要的朋友可以參考下
    2017-11-11
  • Java中常用輸出方式(print() println() printf())

    Java中常用輸出方式(print() println() printf())

    這篇文章主要介紹了Java中常用輸出方式(print() println() printf()),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java編譯器的基礎知識點

    java編譯器的基礎知識點

    在本篇文章里小編給大家整理的是一篇關于java編譯器的基礎知識點內(nèi)容,有興趣的朋友們可以閱讀下。
    2020-02-02

最新評論