我有一个Java变量,其数据类型为long,包含一个文件大小(以字节为单位)。 我想以一种易于理解的方式显示文件的大小:
可以对此进行编程,但是我想知道是否已经存在一个提供此功能的Java框架?
例如,我有一个变量:
long bytes = 1024L;
我想将其打印为字符串:“ 1 KB”。
答案 0 :(得分:1)
最接近的Java SE是ChoiceFormat。使用ChoiceFormat的最简单方法是使用MessageFormat的字符串表示形式:
long fileSize = /* ... */ ;
String humanReadableSize = MessageFormat.format("{0,choice" +
",0#{0,number,integer} B" +
"|1024#{1,number,0.0} KB" +
"|" + (1024 * 1024) + "#{2,number,0.0} MB" +
"|" + (1024 * 1024 * 1024) + "#{3,number,0.0} GB" +
"}",
fileSize,
fileSize / 1024f,
fileSize / (1024f * 1024f),
fileSize / (1024f * 1024f * 1024f));
答案 1 :(得分:1)
您可能想查看Apache Commons FileUtils.byteCountToDisplaySize(long)
。它处理long
的所有可能(非负)值。
用法:
import org.apache.commons.io.FileUtils;
long fileSizeBytes = ...;
FileUtils.byteCountToDisplaySize(fileSizeBytes);