您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java怎么實(shí)現(xiàn)判斷并輸出文件大小”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Java怎么實(shí)現(xiàn)判斷并輸出文件大小”文章能幫助大家解決問題。
有些地方需要判斷用戶上傳的文件大小或者下載文件之類的地方,這個(gè)功能還是比較實(shí)用的。
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("文件大?。?quot; + size + "kb"); } }
1、通過File 的length() 方法計(jì)算文件大??;
2、使用FileInputStream后通過FileChannel的size()方法計(jì)算文件大小;
3、通過FileInputStream的available()方法計(jì)算文件大??;
代碼示例:
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("小文件計(jì)算文件大小"); 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() 方法獲取文件大小,這個(gè)通??梢詰?yīng)用于本地文件的大小計(jì)算; * */ private static long getFileSize01(File file) { return file.length(); } /* * 獲取文件大小的方法02: * 通過FileChannel類來獲取文件大小,這個(gè)方法通常結(jié)合輸入流相關(guān), * 因此可以用于文件網(wǎng)絡(luò)傳輸時(shí)實(shí)時(shí)計(jì)算文件大?。? * */ private static long getFileSize02(File file) throws IOException { FileInputStream fis = new FileInputStream(file); FileChannel fc = fis.getChannel(); return fc.size(); } /* * 獲取文件大小的方法03: * FileInputStream的available()方法看可以用于小文件的文件大小計(jì)算, * 因?yàn)閍vailable()的返回值類型為int型,可能會(huì)存在溢出的情況, * 所以 available()方法計(jì)算文件大小不建議使用; * */ private static int getFileSize03(File file) throws IOException { FileInputStream fis = new FileInputStream(file); return fis.available(); } }
計(jì)算大文件時(shí):cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso
大文件計(jì)算文件大小
文件名稱:cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso
length方法獲取文件大小:3419052032 byte.
FileChannel方法獲取文件大小:3419052032 byte.
available方法獲取文件大小:2147483647 byte.
Integer類型數(shù)據(jù)的最大值:2147483647
計(jì)算小文件時(shí):Chrome-Goagent.7z
小文件計(jì)算文件大小
文件名稱:Chrome-Goagent.7z
length方法獲取文件大小:105959048 byte.
FileChannel方法獲取文件大小:105959048 byte.
available方法獲取文件大小:105959048 byte.
Integer類型數(shù)據(jù)的最大值:2147483647
1、length() 方法的返回值是long類型的,F(xiàn)ileChannl的size()方法是long類型的,F(xiàn)ileInputStream的available() 方法是int類型的;
2、在計(jì)算大文件的時(shí)候不能使用FileInputStream的available() 方法,這樣計(jì)算結(jié)果會(huì)超出int類型最大值會(huì)產(chǎn)生溢出導(dǎo)致計(jì)算結(jié)果不準(zhǔn)確;
3、在計(jì)算大文件的時(shí)候建議使用方法一和方法三,使用方法三會(huì)產(chǎn)生int類型溢出錯(cuò)誤;
4、同時(shí),在計(jì)算本地文件大小的時(shí)候建議使用方法一,length() 的方式計(jì)算文件大小;在計(jì)算網(wǎng)絡(luò)傳輸文件的時(shí)候建議使用FileChannel的size() 方法,方法二包含在FileinputStream中使用具有較好的網(wǎng)絡(luò)性能。
關(guān)于“Java怎么實(shí)現(xiàn)判斷并輸出文件大小”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。