轉換文件大小
import java.text.DecimalFormat;
import java.util.Hashtable;
/**
* 文件大小單位轉換
* @author Administrator
*
*/
public class UnitsConversion extends DecimalFormat {
private static final long serialVersionUID = 3168068393840262910L;
/**
* 存放有效單位的數(shù)組
*/
private static Hashtable
/**
* 限制文件大小上限為1G
*/
private static int GB_MAX_SIZE = 1;
/**
* 最大的MB值
*/
private static int MB_MAX_SIZE = GB_MAX_SIZE * 1024;
/**
* 最大的KB值
*/
private static int KB_MAX_SIZE = MB_MAX_SIZE * 1024;
/**
* 最大的Bytes值
*/
private static int BYTES_MAX_SIZE = KB_MAX_SIZE * 1024;
/**
* 數(shù)字部分的值
*/
private Double numPart;
/**
* 原始的單位字符串
*/
private String originalUnit;
/**
* 標準的單位字符串
*/
private String unit;
/**
* 轉換后的結果
*/
private String result;
// 添加所有有效單位
static {
validUnits.put("字節(jié)", "Bytes");
validUnits.put("bytes", "Bytes");
validUnits.put("byte", "Bytes");
validUnits.put("kb", "KB");
validUnits.put("k", "KB");
validUnits.put("兆", "MB");
validUnits.put("mb", "MB");
validUnits.put("m", "MB");
validUnits.put("gb", "GB");
validUnits.put("g", "GB");
}
/**
* 構造方法:指定了數(shù)字格式,初始所有屬性為NULL
*/
public UnitsConversion() {
super("########.##");
numPart = null;
result = null;
unit = null;
originalUnit = null;
}
/**
* 根據(jù)單位、數(shù)字大小按照常用的轉換原則進行轉換
*
* @param input
* @return 成功轉換后的結果是非空字符串;若失敗了,結果為空字符串
*/
public String defaultConversion(String input) {
analyzeString(input);
if (result != null) {
return result;
}
// 單位 Bytes
if (unit.equals("Bytes")) {
int numPart2Int = numPart.intValue();
// 輸入大小與1G相差0.5M之內(nèi),返回1GB
if ((BYTES_MAX_SIZE - numPart2Int) < (1024 * 1024) / 2) {
return "1 GB";
}
// (0,1KB)
相關推薦:計算機等級考試二級Java編程的三十個基本規(guī)則北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |