我们在项目中经常会遇到获取某一文件夹下的所有文件和文件大小的需求,首先要获取所有文件的大小,File.length可以获取到文件,但获取到的类型是Long,我们要将该数据转换为kb、mb等格式。

   File onefile = new File(“文件路径”);
   Long size = onefile.length();

      

   public String FormetFileSize(long filesize) { //转换文件大小
      DecimalFormat df = new DecimalFormat("#.00");
      String fileSizestr= "";
      if (filesize < 1024) {
          fileSizestr= df.format((double)filesize) + "B";
      } else if (filesize< 1048576) {
          fileSizestr= df.format((double)filesize/ 1024) + "KB";
      } else if (filesize< 1073741824) {
          fileSizestr= df.format((double)filesize/ 1048576) + "MB";
      } else {
          fileSizestr= df.format((double)filesize/ 1073741824) +"GB";
      }
      return fileSizestr;


       这里DecimalFormat 是NumberFormat的一个子类,用于格式化十进制数字,这个new DecimalFormat("#.00");的意思是获取的数字保存两位小数。

                    double num=2.12345678;
                    //取一位整数      
    System.out.println(new DecimalFormat("0").format(num));//3      
    //取一位整数和两位小数      
    System.out.println(new DecimalFormat("0.00").format(num));//3.14      
            //取两位整数和三位小数,整数不足部分以0填补。      
    System.out.println(new DecimalFormat("00.000").format(num));// 03.142      
    //取所有整数部分      
    System.out.println(new DecimalFormat("#").format(num));//3      
            //以百分比方式计数    
            System.out.println(new DecimalFormat("#.##%").format(num));//314.16%  


符号含义    0 :一个数字   # 一个数字,不包括0   . 小数分隔符的占位符   %乘100按百分比显示





第一次写,还有很多不足之处,需再接再厉!!!~~~~~~