Java 读取文件大写和格式化输出字串
前言
在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读取文件内容,按格式输出文件记录 一.我们要做什么? 1.本次我们来使用java将文件按格式输出. 二.我们为什么要做? 1.在使用jmeter脚本时候有个动态参数的文件,需要读取多个参数,人 ...
- java读取文件的方法是_Java读取文件方法大全
Java读取文件方法大全 2011/11/25 9:18:42 tohsj0806 http://tohsj0806.iteye.com 我要评论(0) 摘要:文章来源:http://www.c ...
- java读取文件(按字符或字节读取)
2019独角兽企业重金招聘Python工程师标准>>> java读取文件(按字符或字节读取) import java.io.BufferedReader; import java.i ...
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...
- java中文件的输入和输出
以下所有对象需要关闭(close)的,都使用jdk1.7的try-with-resource来进行释放 文件的输入(读取)需要使用到: 创建一个File对象,在初始化的时候赋值一个文件路径. 创建Fi ...
- 用Java读取文件的5种方法-BufferedReader,FileInputStream,文件,扫描仪,RandomAccessFile
There are many different ways to read a file in Java. In this tutorial, we will look into 5 differen ...
- java读取文件到字符串_Java读取文件到字符串
java读取文件到字符串 Sometimes while working with files, we need to read the file to String in Java. Today w ...
- java 读取文件 效率_Java 逐行读取文本文件的几种方式以及效率对比
前言 上周负责的模块中需要逐行读取文件内容, 写完之后对程序执行效率不太满意, 索性上网查了一下 Java 逐行读取文件内容的各种方法, 并且简单地比对了一下执行效率. 在此记录, 希望能够帮到有需要 ...
- java读取文件 string_java读取文件为string
java读取文件为string qdt 文件 tof cin .com user mar oci JA卜嗜9MCSI儇凭EUhttp://www.docin.com/app ...
最新文章
- pandas生成新的累加数据列、pandas生成新的累加数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累加
- Systemd:再一次的,回归第一进程
- 【final】评价①
- LinkedList 模拟栈和队列
- 数列分块入门3(查询前驱)
- 如何在Hibernate中维护表的历史记录
- linux查看tomcat启动内存溢出,关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论-Fun言...
- 【金万维】天联高级版客户端打开U8报错:未监听端口
- 【教程】生态环境影响评价技术应用及典型实践案例分析
- ImageAI的介绍(2)
- 手机麦克风声音太大_手机麦克风没声音怎么设置?瞬间声音变大,一键设置即可...
- N-Tiers開發方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+元件)
- 前端开发者如何快速的把UI撸出来?(讽刺版)
- python实现将不同的附件发邮件到不同的地区
- 哈工大 计算机系统 一纸开卷CSAPP
- python 简单方式红绿灯状态识别
- Unity 判断点击的是否是UI
- 创建对象与对象属性添加
- android 使用mediaplayer播放视频的时候设置请求头header
- USACO 奶牛食品(最大流)