Java 读取文件大写和格式化输出字串
来源:互联网 发布:淘宝怎么复制淘口令 编辑:程序博客网 时间:2024/05/16 12:10
前言
在Java 的File 类中, 有一个 length() 的方法, 可以返回long型的文件的大小, 单位是字节。
对于系统的使用者来说,这个输出是不太容易理解的, 所以把这个long 型的值换算成 KB, MB , GB 或是TB为单位的String 显示就很必要了。
得到格式化字串
直接上代码:
private static String getFileSizeStr(long fileSize){String sFileSize = "";if(fileSize>0){double dFileSize = (double)fileSize;double kiloByte = dFileSize/1024;if(kiloByte < 1){return sFileSize + "Byte(s)";}double megaByte = kiloByte/1024;if(megaByte < 1){sFileSize = String.format("%.2f",kiloByte);return sFileSize + "KB";}double gigaByte = megaByte/1024;if(gigaByte<1){sFileSize = String.format("%.2f",megaByte);return sFileSize + "MB";}double teraByte = gigaByte/1024;if(teraByte<1){sFileSize = String.format("%.2f",gigaByte);return sFileSize + "GB";}sFileSize = String.format("%.2f",teraByte);return sFileSize + "TB";}return sFileSize;}
需要说明的是:
1. 这里的1MB = 1024 KB (也有的地方为了方便直接使用1000的)
2. long 型的文件大小值需要先转换成 double, 再除以1024, 否则的话得到的小数位数就都是 .00 了 (原因很简单,是java基础的内容, 只是code 的时候容易忽略这个)
当 long i = 5;
比较
double d = i/3; ==> 1.0
与
double d = (double)i/3; ==> 1.6666666...
的区别就知道了.
3. 保留两为小数的写法
String.format("%.2f",gigaByte);
保留小数位数
从以上的第三点, 引申说一下在Java 中,如果保留指定的小数位数
方法1: 使用String.format 的方式
String.format是在JDK1.5中新增的静态方法,功能强。它主要功能是格式化数据,大致分为这些类(常规类型、字符类型、数值类型、日期类型)
语法是:
常规类型、字符类型和数值类型的格式说明符的语法:%[参数索引位置$][转换标识符][最小官渡][.保留精度位数]转换方式
日期语法:%[参数索引位置$][t或T]转换方式
* %[index$][标识][最小宽度][保留精度]转换方式
* 标识:
* '-' 在最小宽度内左对齐,不可以与“用0填充”同时使用
* '+' 结果总是包括一个符号
* ' ' 正值前加空格,负值前加负号
* '0' 结果将用零来填充
* ',' 每3位数字之间用“,”分隔(只适用于fgG的转换)
* '(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)
* 最小宽度: 最终该整数转化的字符串最少包含多少位数字
* 保留精度:保留小数位后面个数
* 转换方式:
* 'e', 'E' -- 结果被格式化为用计算机科学记数法表示的十进制数
* 'f' -- 结果被格式化为十进制普通表示方式
* 'g', 'G' -- 根据具体情况,自动选择用普通表示方式还是科学计数法方式
* 'a', 'A' -- 结果被格式化为带有效位数和指数的十六进制浮点数
细部使用可以参见Java API.
也可参考 http://www.cnblogs.com/xytop/archive/2008/08/26/1277125.html
方法2: 使用BigDecimal,
BigDecimal 是需要高精度时可以使用的
double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
BigDecimal.ROUND_HALF_UP 是设定四舍五入
方法3: 使用 java.text.DecimalFormat
String s = new java.text.DecimalFormat("#.00").format(3.1415926);
方法4: 使用 NumberFormat
NumberFormat ddf1=NumberFormat.getNumberInstance() ; ddf1.setMaximumFractionDigits(2); s = ddf1.format(3.1415926) ; System.out.print(s);
- Java 读取文件大写和格式化输出字串
- java 文件 大小格式化输出
- java 文件 大小格式化输出
- Java 格式化输出到文件
- 文件格式化输入和输出
- java读取excel表格并格式化输出
- java把字符串输出到文件和读取文件
- java把字符串输出到文件和读取文件
- Python 字串等宽格式化输出
- Java读取有输出文件
- java读取文件——字符流输入和输出
- java txt 文件的读取 和输出内容
- java nio 实现文件的读取和输出
- 文件的读取和输出
- 模板文件读取和输出
- java读取和输出文本文件
- Java读取Excel并解析文本(并格式化输出)
- Java读取Excel并解析文本(并格式化输出)
- 今日所学(9.4)
- Tomcat7安装与配置,linux
- 找工作笔试面试那些事儿(11)---数据库知识总结(2)范式
- PGA
- 微软面试100之9 判断整数序列是不是二元查找树的后序遍历结果
- Java 读取文件大写和格式化输出字串
- Android开发3.1:Activity详细介绍
- SilkTest武林外史之4-测试JFC Swing应用
- C#获取本机IPv4地址
- 指针用法
- SilkTest武林外史之5-测试SWT应用
- oracle 在安装的时候几个标签的作用
- SilkTest武林外史之6-启动你的应用程序
- 消除由GCC生成的抽象语法树的冗余信息