java 文件大小计算

java 文件大小计算:

public static String formatFileSize(long size) {
        DecimalFormat df = new DecimalFormat("#.00");
        String fileSizeString = "";
        String wrongSize = "0B";
        if (size == 0) {
            return wrongSize;
        }
        if (size < 1024) {
            fileSizeString = df.format((double) size) + "B";
        } else if (size < 1048576) {
            fileSizeString = df.format((double) size / 1024) + "KB";
        } else if (size < 1073741824) {
            fileSizeString = df.format((double) size / 1024) + "MB";
        } else if (size < 1099511627776L) {
            fileSizeString = df.format((double) size / 1073741824) + "GB";
        } else if (size < 1125899906842624L) {
            fileSizeString = df.format((double) size / 1099511627776L) + "TB";
        } else {
            fileSizeString = df.format((double) size / 1125899906842624L) + "PB";
        }
        return fileSizeString;
    }

相关:

计算机存储信息的最小单位,称之为位(bit,又称比特),位 bit (比特)(BinaryDigits):存放一位二进制数,即 0 或 1,b是最小的存储单位。
存储单位一般用B,KB,MB,GB,TB,EB,ZB,YB,BB来表示;
字节 byte:8个二进制位为一个字节(B),B是最常用的单位

  • 1B=8b
  • 1KB (Kilobyte千字节)=1024B
  • 1MB(Megabyte 兆字节简称“兆”)=1024KB
  • 1GB (Gigabyte 吉字节又称“千兆”)=1024MB
  • 1TB (Trillionbyte万亿字节太字节)=1024GB
  • 1PB(Petabyte 千万亿字节拍字节)=1024TB
  • 1EB(Exabyte百亿亿字节艾字节)=1024PB
  • 1ZB(Zettabyte 十万亿亿字节 泽字节)= 1024 EB
  • 1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024ZB
  • 1BB (Brontobyte一千亿亿亿字节)= 1024 YB

注:其中1024=2^10 ( 2 的10次方),“兆”为百万级数量单位。

整型取值范围:

java.lang.Integer 取值范围:
最大值:2147483647
最小值:-2147483648

java.lang.Long 取值范围:
最大值:9223372036854775807L
最小值:-9223372036854775808L

更多类型可查看:Java 平台API 规范

如果想计算超出 Long 的取值范围的数值,则可以使用 BigInteger或者BigDecimal

BigInteger:

public static void main(String[] args) {
        BigInteger b = new BigInteger("1125899906842624");
        BigInteger b1 = new BigInteger("1024");

        //1.加法
        System.out.println("加法:" + b.add(b1));

        //2.减法
        System.out.println("减法:" + b.subtract(b1));

        //3.乘法
        System.out.println("乘法:" + b.multiply(b1));

        //4.除法
        System.out.println("除法:" + b.divide(b1));

        //大小比较
        //等于
        if (b.compareTo(b1) == 0) System.out.println("b == b1");

        //大于
        else if (b.compareTo(b1) > 0) System.out.println("b > b1");

        //小于
        else if (b.compareTo(b1) < 0) System.out.println("b < b1");

    }

BigDecimal:

public static void main(String[] args) {
         BigDecimal  b = new BigDecimal("1125899906842624");
        BigDecimal  b1 = new BigDecimal("1024");

        //1.加法
        System.out.println("加法:" + b.add(b1));

        //2.减法
        System.out.println("减法:" + b.subtract(b1));

        //3.乘法
        System.out.println("乘法:" + b.multiply(b1));

        //4.除法
        System.out.println("除法:" + b.divide(b1));

        //大小比较
        //等于
        if (b.compareTo(b1) == 0) System.out.println("b == b1");

        //大于
        else if (b.compareTo(b1) > 0) System.out.println("b > b1");

        //小于
        else if (b.compareTo(b1) < 0) System.out.println("b < b1");

        BigDecimal bm=new BigDecimal("1.345");
        System.out.println("保留两位小数(四舍五入):"+bm.setScale(2,BigDecimal.ROUND_HALF_UP));

    }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算Parquet文件的大小,可以使用Java中的File类和ParquetFileReader类。首先,使用File类获取文件大小,然后使用ParquetFileReader类读取文件元数据并计算文件的总大小。 下面是一个示例代码: ```java import java.io.File; import java.io.IOException; import org.apache.hadoop.fs.Path; import org.apache.parquet.hadoop.ParquetFileReader; import org.apache.parquet.hadoop.metadata.ParquetMetadata; public class ParquetFileSizeCalculator { public static void main(String[] args) throws IOException { String filePath = "path/to/parquet/file"; File parquetFile = new File(filePath); long fileSize = parquetFile.length(); System.out.println("File size: " + fileSize + " bytes"); Path path = new Path(filePath); ParquetMetadata metadata = ParquetFileReader.readFooter(path.getFileSystem(new org.apache.hadoop.conf.Configuration()), path); long totalFileSize = metadata.getBlocks().stream().mapToLong(block -> block.getCompressedSize()).sum(); System.out.println("Total file size: " + totalFileSize + " bytes"); } } ``` 在上面的代码中,首先使用File类获取Parquet文件的大小,然后使用ParquetFileReader类读取文件元数据并计算文件的总大小。元数据中包含文件中每个数据块的压缩大小,因此可以使用流API计算所有数据块的压缩大小的总和。 注意,要使用ParquetFileReader类,需要添加以下依赖项: ```xml <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-hadoop</artifactId> <version>1.12.0</version> </dependency> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值