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 < 1024) {
return String.valueOf(size) + "B";
} else {
size = size / 1024;
}
//如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
//因为还没有到达要使用另一个单位的时候
//接下去以此类推
if (size < 1024) {
return String.valueOf(size) + "KB";
} else {
size = size / 1024;
}
if (size < 1024) {
//因为如果以MB为单位的话,要保留最后1位小数,
//因此,把此数乘以100之后再取余
size = size * 100;
return String.valueOf((size / 100)) + "."
+ String.valueOf((size % 100)) + "MB";
} else {
//否则如果要以GB为单位的,先除于1024再作同样的处理
size = size * 100 / 1024;
return String.valueOf((size / 100)) + "."
+ String.valueOf((size % 100)) + "GB";
}
}
在主函数调用几个字节数B,进行测试:
package fileSize;
public class fileSizeTest {
public static String getPrintSize(long size) {
//如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义
if (size < 1024) {
return String.valueOf(size) + "B";
} else {
size = size / 1024;
}
//如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
//因为还没有到达要使用另一个单位的时候
//接下去以此类推
if (size < 1024) {
return String.valueOf(size) + "KB";
} else {
size = size / 1024;
}
if (size < 1024) {
//因为如果以MB为单位的话,要保留最后1位小数,
//因此,把此数乘以100之后再取余
size = size * 100;
return String.valueOf((size / 100)) + "."
+ String.valueOf((size % 100)) + "MB";
} else {
//否则如果要以GB为单位的,先除于1024再作同样的处理
size = size * 100 / 1024;
return String.valueOf((size / 100)) + "."
+ String.valueOf((size % 100)) + "GB";
}
}
public static void main(String[] args) {
System.out.println("来自 www.jb51.net 的测试结果:");
System.out.println(getPrintSize(200));
System.out.println(getPrintSize(200000));
System.out.println(getPrintSize(200000000));
System.out.println(getPrintSize(2000000000));
}
}
运行结果如下图:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数学运算技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关文章
Springboot如何集成jodconverter做文档转换
这篇文章主要介绍了Springboot如何集成jodconverter做文档转换问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
使用Spring RestTemplate 详解实践使用及拓展增强
这篇文章主要介绍了使用Spring RestTemplate 详解实践使用及拓展增强,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10
Java 时间格式转换之impleDateFormat与Data API解析与使用
想必大家对 SimpleDateFormat 并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,他是以区域敏感的方式格式化和解析日期的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化2021-11-11
Spring MVC+FastJson+hibernate-validator整合的完整实例教程
这篇文章主要给大家介绍了关于Spring MVC+FastJson+hibernate-validator整合的完整实例教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2018-04-04


最新评论