java獲取文件大小


1.使用File的length()方法獲取。這個方法獲取的字節數,由於返回的是Long類型所以能返回的最大值是Long.MAX_VALUE

        File file = new File(
                "D:\\迅雷下載\\名偵探柯南:業火的向日葵.修復版.Meitantei.Conan.Goka.no.himawari.2015.HD720P.X264.AAC.Japanese.CHS.Mp4Ba\\名偵探K南:業H的向日葵.修復版.Meitantei.Conan.Goka.no.himawari.2015.HD720P.X264.AAC.Japanese.CHS.Mp4Ba.mp4");
        long length = file.length();
        System.out.println(length);// 2337588477生成的文件的大小
        System.out.println(Long.MAX_VALUE);// 9223372036854775807 long類型的最大值
        System.out.println("--------------------------------");

2.使用FileInputStream的available()方法.返回的字節數和Integer.MAX_VALUE的最大值相同。由於返回值是int類型的所以這個方法只支持小於Integer.MAX_VALUE的方法,大於的話就不准確了

        FileInputStream is = new FileInputStream(file);
        int available = is.available();
        System.out.println(available); // 2147483647
        System.out.println(Integer.MAX_VALUE);// 2147483647
        System.out.println("--------------------------------");

3.使用java.nio.*下的FileChannel工具.使用FileChannel后得到的結果與第一種情況吻合,准確地描述了文件的准確大小。

        System.out.println("--------------------------------");
        FileChannel channel = is.getChannel();
        long size2 = channel.size();
        System.out.println(size2);// 2337588477
        System.out.println("-----------------------------------");

File的length()方法與FileChannel的size方法返回的值是long類型的,long類型能表示的整數的最大值是9223372036854775807 ,支持的最大文件大小大約為8954730132868714 EB。FileInputStream的avaliable()方法返回的值是int類型的,所能支持的最大文件大小為1.99G,所以在選擇文件校驗的時候請謹慎選擇。較大文件還是使用第一種和第三種方法

其他方法:

如果是在web項目中使用spring來管理文件 可以采用下面的方法

File file = new File("D:\\迅雷下載\\名偵探柯南:業火的向日葵.修復版.Meitantei.Conan.Goka.no.himawari.2015.HD720P.X264.AAC.Japanese.CHS.Mp4Ba\\名偵探K南:業H的向日葵.修版.Meitantei.Conan.Goka.no.himawari.2015.HD720P.X264.AAC.Japanese.CHS.Mp4Ba.mp4");
 MultipartFile file1 = (MultipartFile) file;
 long size = file1.getSize();
 System.out.println(size);//2337588477

參考博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM