如何在Java中将字节大小转换为人类可读的格式?
像1024应该变成“ 1 Kb”,而1024 * 1024应该变成“ 1 Mb”。
我有点讨厌为每个项目编写此实用程序方法。在Apache Commons中有一个静态方法吗?
有趣的事实:此处发布的原始代码段是有史以来复制最多的Java代码段,并且存在缺陷。它是固定的,但变得混乱。
本文全文:有史以来复制最多的Stack Overflow片段存在缺陷!
来源:将字节大小格式化为人类可读格式 编程指南
SI(1 k = 1,000)
public static String humanReadableByteCountSI(long bytes) {
if (-1000 < bytes && bytes < 1000) {
return bytes + " B";
}
CharacterIterator ci = new StringCharacterIterator("kMGTPE");
while (bytes <= -999_950 || bytes >= 999_950) {
bytes /= 1000;
ci.next();
}
return String.format("%.1f %cB", bytes / 1000.0, ci.current());
}
二进制(1 K = 1,024)
public static String humanReadableByteCountBin(long bytes) {
long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
if (absB < 1024) {
return bytes + " B";
}
long value = absB;
CharacterIterator ci = new StringCharacterIterator("KMGTPE");
for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >> i; i -= 10) {
value >>= 10;
ci.next();
}
value *= Long.signum(bytes);
return String.format("%.1f %ciB", value / 1024.0, ci.current());
}
输出示例:
SI BINARY
0: 0 B 0 B
27: 27 B 27 B
999: 999 B 999 B
1000: 1.0 kB 1000 B
1023: 1.0 kB 1023 B
1024: 1.0 kB 1.0 KiB
1728: 1.7 kB 1.7 KiB
110592: 110.6 kB 108.0 KiB
7077888: 7.1 MB 6.8 MiB
452984832: 453.0 MB 432.0 MiB
28991029248: 29.0 GB 27.0 GiB
1855425871872: 1.9 TB 1.7 TiB
9223372036854775807: 9.2 EB 8.0 EiB (Long.MAX_VALUE)
问题内容: 如何在Java中将字节大小转换为人类可读的格式?像1024应该变成“ 1 Kb”,而1024 * 1024应该变成“ 1 Mb”。 我有点讨厌为每个项目编写此实用程序方法。Apache Commons中是否为此有任何静态方法? 问题答案: SI(1 k = 1,000) 二进制(1 K = 1,024) } 输出示例:
问题内容: 我想编写一种将CamelCase转换为人类可读名称的方法。 这是测试用例: 问题答案: 这适用于你的测试用例: 这是一个测试工具: 它使用零长度匹配正则表达式以及后向和前向查找在哪里插入空格。基本上有3种模式,我习惯String.format将它们放在一起以使其更具可读性。 这三种模式是: UC behind me, UC followed by LC in front of me n
问题内容: 我正在从硬件设备读取8字节的数据。我需要将它们转换为数值。我想将它们转换为适合8个字节的长度。我对Java和低级数据类型操作不是很熟悉。我似乎有两个问题(除了几乎没有有关硬件的文档的事实外),这些字节期望是无符号的,所以我无法进行直接整数转换。我不确定它们是什么字节序。 任何意见,将不胜感激。 最终结束了(摘自一个星期前我可能应该已经读过的一些源代码): 问题答案: 对于字节序,请测试
问题内容: 我想在UDP协议中使用字节格式发送数据时遇到问题,问题是当我尝试使用json对象类型创建数据时,无法获取数据的字节格式,这是我的示例代码: 我知道我的问题,但我找不到如何将json对象转换为字节,有什么建议吗? 问题答案: 获取字符串的字节:
是否有一个reg exp或函数可以将驼峰大小写,css和下划线转换为人类可读的格式?它目前不需要支持非人类。对不起外星人。:( 例子: hello世界-