java 如何把byte转化为KB、MB、GB的方法

目录
  • java把byte转化为KB、MB、GB的方法
    • 方法如下
  • java字节转换成MB,GB,TB和MB,GB,TB转成字节的工具类

java把byte转化为KB、MB、GB的方法

从服务器下载一个文件时候,往往告诉你的是相应的KB,MB,GB。

方法如下

public static String getNetFileSizeDescription(long size) {
        StringBuffer bytes = new StringBuffer();
        DecimalFormat format = new DecimalFormat("###.0");
        if (size >= 1024 * 1024 * 1024) {
            double i = (size / (1024.0 * 1024.0 * 1024.0));
            bytes.append(format.format(i)).append("GB");
        }
        else if (size >= 1024 * 1024) {
            double i = (size / (1024.0 * 1024.0));
            bytes.append(format.format(i)).append("MB");
        }
        else if (size >= 1024) {
            double i = (size / (1024.0));
            bytes.append(format.format(i)).append("KB");
        }
        else if (size < 1024) {
            if (size <= 0) {
                bytes.append("0B");
            }
            else {
                bytes.append((int) size).append("B");
            }
        }
        return bytes.toString();
    }

这里用到了这个类:

DecimalFormat

java字节转换成MB,GB,TB和MB,GB,TB转成字节的工具类

import java.math.BigDecimal;
public class ByteUtil {

    public static final Integer KB_SIZE = 2 << 9;
    public static final Integer MB_SIZE = 2 << 19;
    public static final Integer GB_SIZE = 2 << 29;

    public static BigDecimal bytes2Unit(long bytes, Integer unit) {
        BigDecimal size = new BigDecimal(bytes);
        BigDecimal u = new BigDecimal(unit);
        return size.divide(u, 2, BigDecimal.ROUND_DOWN);
    }

    public static Long unit2Byte(BigDecimal decimal,Integer unit) {
         return decimal.multiply(BigDecimal.valueOf(unit)).longValue();
    }

    public static Long kb2Byte(BigDecimal decimal) {
        return decimal.multiply(BigDecimal.valueOf(KB_SIZE)).longValue();
    }

    public static Long mb2Byte(BigDecimal decimal) {
        return decimal.multiply(BigDecimal.valueOf(MB_SIZE)).longValue();
    }

    public static Long gb2Byte(BigDecimal decimal) {
        return decimal.multiply(BigDecimal.valueOf(GB_SIZE)).longValue();
    }

    public static BigDecimal bytes2Kb(long bytes) {
        return bytes2Unit(bytes,KB_SIZE);
    }

    public static BigDecimal bytes2Mb(long bytes) {
        return bytes2Unit(bytes,MB_SIZE);
    }

    public static BigDecimal bytes2Gb(long bytes) {
        return bytes2Unit(bytes,GB_SIZE);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现字节数B转化为KB、MB、GB的方法示例【测试可用】

    本文实例讲述了Java实现字节数B转化为KB.MB.GB的方法.分享给大家供大家参考,具体如下: 在文件处理的系统中,很容易就能通过一些系统自带的方法取出其大小,问题是这个大小往往只是一个字节数B. 如果要把这个字节数转化为KB.MB.GB的最终呈现给用户,则涉及到整除与取余的算术运算. 方法如下: public static String getPrintSize(long size) { //如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义 if (size

  • java byte数组与16进制间相互转换的示例

    1.准备工作 import java.util.Arrays; /** * Byte[]与hex的相互转换 * @explain * @author Marydon * @creationTime 2018年6月11日下午2:29:11 * @version 1.0 * @since * @email marydon20170307@163.com */ public class ByteUtils { // 16进制字符 private static final char[] HEX_CHAR

  • java中进制的转换,Byte与16进制的转换方法

    java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制  String Integer.toBinaryString(int i) 十六进制转成十进制 Inte

  • java 如何把byte转化为KB、MB、GB的方法

    目录 java把byte转化为KB.MB.GB的方法 方法如下 java字节转换成MB,GB,TB和MB,GB,TB转成字节的工具类 java把byte转化为KB.MB.GB的方法 从服务器下载一个文件时候,往往告诉你的是相应的KB,MB,GB. 方法如下 public static String getNetFileSizeDescription(long size) { StringBuffer bytes = new StringBuffer(); DecimalFormat format

  • java 流与 byte[] 的互转操作

    1. InputStream -> byte[] 引入 apache.commons.is 包 import org.apache.commons.io.IOUtils; byte[] bytes = IOUtils.toByteArray(inputStream); 2. byte[] -> InputStream InputStream inputStream = new ByteArrayInputStream(bytes); 补充知识:byte[]与各种数据类型互相转换示例 在sock

  • Java中的byte & 0xff到底有什么作用?

    如果写过通信类的代码,比如socket编程,应该对这个问题不陌生. 先说结论 byte & 0xff 是将byte从(-128 至 127)转化成 int(转化后的数值范围: 0 至 255). 其实就是1个byte有两种表示方法,我们既可以用-128 - 127这段范围来表示一个字节,也可以用 0 - 255这个范围的数来表示一个字节. 看一个demo 用Java中的InetAddress类来获取我当前的ip public class InetAddressTest { public stat

  • 读取Java文件到byte数组的三种方法(总结)

    读取Java文件到byte数组的三种方法(总结) package zs; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Rando

  • 详解java中的byte类型

    介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]. 取值范围分析 一直在想为什么不是 -128 到 128呢?今天分析了一下这个问题. 首先我们得明白一件事情,那就是运算规则: ####################################################################

  • java int转byte和long转byte的方法

    在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理long和int,而不是转换为string. public class ByteOrderUtils { public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[3] = (byte) (res & 0xff);// 最低位 targets[2] = (byte) ((res >> 8) & 0xff);// 次低

  • Java 图片与byte数组互相转换实例

    实例如下: //图片到byte数组 public byte[] image2byte(String path){ byte[] data = null; FileImageInputStream input = null; try { input = new FileImageInputStream(new File(path)); ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buf = new byte[

  • java整数与byte数组的转换实现代码

    java整数与byte数组的转换实现代码            这里对java中整数与byte数组的转换进行了实现,平时的项目中很少用的到,但是特定需求的时候还是需要的,这里就记录下,亲测可用, 实现代码: public class NumberUtil { /** * int整数转换为4字节的byte数组 * * @param i * 整数 * @return byte数组 */ public static byte[] intToByte4(int i) { byte[] targets =

  • java 文件和byte互转的实例

    实例如下所示: /** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File file = new File(filePath); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); byte[]

随机推荐