格式化容量或速度

枚举 StorageSpeedUnit

enum StorageSpeedUnit{
		NUMERIC,STORAGE,SPEED;
}

日志 Loggable

public static void logger(String pattern,Object... paramArray) {
	String cls = MethodHandles.lookup().lookupClass().getName();
	System.Logger logger = System.getLogger(cls);
	String msg = String.format(pattern,paramArray);
	logger.log(System.Logger.Level.INFO,msg);
}

方法 formatStorageUnit

/**
 * @title formatStorageUnit 存储容量或速度格式化
 * @param storageByteSize 存储大小或速度,单位字节byte
 * @param su enum StorageSpeedUnit
 * NUMERIC:仅显示数字;STORAGE:数字加容量标识;SPEED:数字加速度标识
 * @return String 格式化后的目标字符串
 * @create 2024-05-13 21:09:43
 * @author elf
 * @since 1.0.0
 */
public static String formatStorageUnit(
	final long storageByteSize,StorageSpeedUnit su) {
	if (storageByteSize < 0) {
		return "0";
	}
	String[] unitArray = new String[]{};
	switch (su) {
		case null -> {
			break;
		}
		case NUMERIC -> {
			break;
		}
		case STORAGE -> unitArray = new String[]{"B","KB","MB","GB","TB"};
		case SPEED -> unitArray = new String[]{"B/s","KB/s","MB/s","GB/s","TB/s"};
		default -> {
			break;
		}
	}
	
	int digitGroup = (int)(Math.log10(storageByteSize) / Math.log10(1024));
	double number = storageByteSize / Math.pow(1024,digitGroup);
	var formatter =  new DecimalFormat("#,##0.##");
	
	if (unitArray.length == 0) {
		return formatter.format(number);
	} else {
		return formatter.format(number) + " " + unitArray[digitGroup];
	}
}

测试

public static void main(String[] sa) {
	var formatSize = 10737418;
	var formatEmpty = formatStorageUnit(formatSize,null);
	var formatNumeric = formatStorageUnit(formatSize,StorageSpeedUnit.NUMERIC);
	var formatStorage = formatStorageUnit(formatSize,StorageSpeedUnit.STORAGE);
	var formatSpeed = formatStorageUnit(formatSize,StorageSpeedUnit.SPEED);
	var pattern = "empty:%s,numeric:%s,storage:%s,speed:%s";
    Loggable.logger(pattern,formatEmpty,formatNumeric,formatStorage,formatSpeed); 
}
513, 2024 9:16:38 下午 com.elf.core.logger.Loggable logger
信息: empty:10.24,numeric:10.24,storage:10.24 MB,speed:10.24 MB/s

相关推荐

  1. 格式化容量速度

    2024-05-13 22:32:06       31 阅读
  2. Spark读取Hive数据文件如何提升速度的优化思路

    2024-05-13 22:32:06       24 阅读
  3. docker导出导入镜像容器

    2024-05-13 22:32:06       49 阅读
  4. docker删除、停止所有容器镜像

    2024-05-13 22:32:06       40 阅读
  5. 时间格式数据向前向后归于整时

    2024-05-13 22:32:06       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 22:32:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 22:32:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 22:32:06       87 阅读
  4. Python语言-面向对象

    2024-05-13 22:32:06       96 阅读

热门阅读

  1. tp8 设置空控制器和空方法

    2024-05-13 22:32:06       27 阅读
  2. NeoVim配置文件基本的

    2024-05-13 22:32:06       30 阅读
  3. spring boot常用的filter

    2024-05-13 22:32:06       29 阅读
  4. B树(B-Tree)

    2024-05-13 22:32:06       36 阅读
  5. 你写代码,会关注时间复杂度吗?

    2024-05-13 22:32:06       33 阅读