java 如何把byte轉(zhuǎn)化為KB、MB、GB的方法
java把byte轉(zhuǎn)化為KB、MB、GB的方法
從服務(wù)器下載一個(gè)文件時(shí)候,往往告訴你的是相應(yīng)的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(); }
這里用到了這個(gè)類:
DecimalFormat
java字節(jié)轉(zhuǎn)換成MB,GB,TB和MB,GB,TB轉(zhuǎn)成字節(jié)的工具類
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); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法,通過(guò)一個(gè)讀取txt格式的log文件為例,詳細(xì)的講述了Java讀取文件的方法及原理,需要的朋友可以參考下2014-09-09spring?boot+mybatis-plus配置讀寫分離的操作
這篇文章主要介紹了spring?boot+mybatis-plus配置讀寫分離的操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01java連接mysql數(shù)據(jù)庫(kù)學(xué)習(xí)示例
這篇文章主要介紹了java連接mysql數(shù)據(jù)庫(kù)學(xué)習(xí)示例,需要的朋友可以參考下2014-03-03Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項(xiàng)目的操作過(guò)程
這篇文章主要介紹了Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03java?stream實(shí)現(xiàn)分組BigDecimal求和以及自定義分組求和
這篇文章主要給大家介紹了關(guān)于java?stream實(shí)現(xiàn)分組BigDecimal求和以及自定義分組求和的相關(guān)資料,Stream是Java8的一大亮點(diǎn),是對(duì)容器對(duì)象功能的增強(qiáng),它專注于對(duì)容器對(duì)象進(jìn)行各種非常便利、高效的聚合操作或者大批量數(shù)據(jù)操作,需要的朋友可以參考下2023-12-12spring aop實(shí)現(xiàn)接口超時(shí)處理組件的代碼詳解
這篇文章給大家介紹了spring aop實(shí)現(xiàn)接口超時(shí)處理組件,文中有詳細(xì)的實(shí)現(xiàn)思路,并通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02關(guān)于SpringBoot+Mybatis報(bào)MapperScan.factoryBean()問(wèn)題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問(wèn)題,讓你的項(xiàng)目運(yùn)行更順暢!本指南將帶你一步步解決這個(gè)問(wèn)題,讓你的開(kāi)發(fā)過(guò)程更加高效,不要錯(cuò)過(guò)這個(gè)實(shí)用指南,快來(lái)一探究竟吧!2024-02-02