package com.quincy.util;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Field;import java.math.BigDecimal;import java.net.URL;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map.Entry;import java.util.Properties;/** * * @author Quincy * */public class UtilHandler { public static String QQ ; public static String URLMAIL ; public static String mailUserName ; public static String mailUserPwd ; //生成字符串 //检测字符串是否为空 //检测对象是否为空 //生成随机数 //格式化数据 //格式化日期 //BigDecimel //日期转换为String类型 //yyyy-MM-dd HH:mm:ss SSS年月日 时分秒 毫秒 /** * 为空返回false * 不为空返回true * @param strs * @return */ public static boolean checkString(String...strs){ if(strs != null && strs.length > 0){ for(String str : strs){ if(str == null || str.trim().equals("")){ return false; } } } return true; } /** * 把传入的日期格式化为字符串 * @param date * @param flag 有毫秒数 * @return */ public static String getStringDate(Date date,boolean flag){ if(flag){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS"); return sdf.format(date); }else{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); return sdf.format(date); } } /** * 生成yyyy-MM-dd HH:mm:ss格式的日期 * @param date * @return */ public static String getStringDate(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } /** * * @param date * @return */ public static String getString(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); return sdf.format(date); } /** * 生成随机数 * 默认从0开始 * @param length 随机数的长度 * @param end 结束的数字 * @return */ public static StringBuffer getRandom(int length,int end){ StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int num = (int)(Math.random()*end); sb.append(num); } return sb; } /** * * @param start 起始数 * @param length 产生随机数字的长度 * @param end 结束数 * @return */ public static StringBuffer getRandom(int start,int length,int end){ StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int num = (int)(Math.random()*end) + start; sb.append(num); } return sb; } /** * 数字格式化 * @param args */ public static Object formatNumber(Object num){ DecimalFormat df = new DecimalFormat("###,###"); return df.format(num); } /** * 数字格式化,保留小数点后边的几位 * @param args */ public static Object formatNumberHaveDecimal(Object num,int length){ StringBuffer str = new StringBuffer(); for(int i = 0;i < length;i ++){ str.append("#"); } DecimalFormat df = new DecimalFormat("###,###." + str); return df.format(num); } /** * 位数不够补0 * @param num * @param length * @return */ public static Object formatNumberByZero(Object num,int length){ StringBuffer str = new StringBuffer(); for(int i = 0;i < length;i ++){ str.append("0"); } DecimalFormat df = new DecimalFormat("###,###." + str); return df.format(num); } /** * 两个大数子相加 * @param str1 * @param str2 * @return */ public static BigDecimal addBigDecimal(String str1,String str2){ BigDecimal big = new BigDecimal(str1); BigDecimal smail = new BigDecimal(str2); BigDecimal result = big.add(smail); return result; } /** * 两个大数字相减 * @param str1 * @param str2 * @return */ public static BigDecimal subtractBigDecimal(String str1,String str2){ BigDecimal big = new BigDecimal(str1); BigDecimal smail = new BigDecimal(str2); BigDecimal result = big.subtract(smail); return result; } /** * 两个大数字乘 * @param str1 * @param str2 * @return */ public static BigDecimal multiplyBigDecimal(String str1,String str2){ BigDecimal big = new BigDecimal(str1); BigDecimal smail = new BigDecimal(str2); BigDecimal result = big.multiply(smail); return result; } /** * 两个大数字相除 * @param str1 * @param str2 * @return */ public static BigDecimal divideBigDecimal(String str1,String str2){ BigDecimal big = new BigDecimal(str1); BigDecimal smail = new BigDecimal(str2); //除法报错(无法整除),确定要保留的小数位 BigDecimal result = big.divide(smail,4,BigDecimal.ROUND_HALF_UP); return result; } /** * 两个大数字相除 * @param str1 * @param str2 * @param length 设置保留的小数点之后的位数 * @return */ public static BigDecimal divideBigDecimal(String str1,String str2,int length){ BigDecimal big = new BigDecimal(str1); BigDecimal smail = new BigDecimal(str2); //除法报错(无法整除),确定要保留的小数位 BigDecimal result = big.divide(smail,length); return result; } public static String myNumber(int length,int number){ String strs = getString(new Date()) + getRandom(length,number).toString(); return strs; } /** * * 如果要处理多个properties文件 * @param propertiesName */ public static void readProperties(String...propertiesName) { System.out.println("加载相关资源文件开始!"); Properties properties = new Properties(); FileInputStream in = null; try { //循环是为了处理对个properties文件 for(int i = 0;i < propertiesName.length ; i ++){ URL urlPath = UtilHandler.class.getClassLoader().getResource(propertiesName[i]); properties.load(new FileInputStream(new File(urlPath.getFile()))); getValue(properties); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * 获取Properties文件 * @param propertiesName */ public static void readProperties(String propertiesName){ System.out.println("加载相关资源文件开始!"); Properties properties = new Properties(); FileInputStream in = null; try { URL urlPath = UtilHandler.class.getClassLoader().getResource(propertiesName); properties.load(new FileInputStream(new File(urlPath.getFile()))); getValue(properties); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if(in != null){ in.close(); } } catch (IOException e) { e.printStackTrace(); } }} /** * 由传入的Properties文件中的key获取对应的value * @param key * @return */ public static void getValue(Properties properties){ for(Entry