`
这些年
  • 浏览: 399880 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我的工具类

    博客分类:
  • java
 
阅读更多

1:将带宽流量转换单位

package com.chinacache.snp.TransferChannelAlarm.util;

import java.text.DecimalFormat;
import java.text.Format;

public class FormatToSuitableFluxUnit {
	private static final long K_BIT = 1000;
	private static final long M_BIT = 1000 * 1000;
	private static final long G_BIT = 1000 * 1000 * 1000;
	
	private static final long T_BIT = 1000 * 1000 * 1000 * 1000L;
	private static final long P_BIT = 1000 * 1000 * 1000 * 1000L * 1000L;
	private static final long E_BIT = 1000 * 1000 * 1000 * 1000L * 1000L * 1000L;

	public static final String BIT_STR = "Byte";
	public static final String K_BIT_STR = "KB";
	public static final String M_BIT_STR = "MB";
	public static final String G_BIT_STR = "GB";
	public static final String T_BIT_STR = "TB";
	public static final String P_BIT_STR = "PB";
	public static final String E_BIT_STR = "EB";

	/**
	 * 将以bit表示的带宽,转换为适合显示的带宽单位,精确到小数点后两位
	 */
	public static String getSuitableFluxRepresentation(long fluxInBit) {
		// 保留小数点后面两位
		Format format = new DecimalFormat("#.00");
		if (fluxInBit >= E_BIT) {
			return format.format((double) fluxInBit / E_BIT) + " " + E_BIT_STR;
		} else if (fluxInBit >= P_BIT) {
			return format.format((double) fluxInBit / P_BIT) + " " + P_BIT_STR;
		} else if (fluxInBit >= T_BIT) {
			return format.format((double) fluxInBit / T_BIT) + " " + T_BIT_STR;
		} else if (fluxInBit >= G_BIT) {
			return format.format((double) fluxInBit / G_BIT) + " " + G_BIT_STR;
		} else if (fluxInBit >= M_BIT) {
			return format.format((double) fluxInBit / M_BIT) + " " + M_BIT_STR;
		} else if (fluxInBit >= K_BIT) {
			return format.format((double) fluxInBit / K_BIT) + " " + K_BIT_STR;
		} else {
			return fluxInBit +"   "+ BIT_STR;
		}
	}

	/**
	 * 获取合适的带宽单位
	 */
	public static String getSuitableFluxUnit(long fluxInBit) {
		if (fluxInBit >= E_BIT) {
			return E_BIT_STR;
		} else if (fluxInBit >= P_BIT) {
			return P_BIT_STR;
		} else if (fluxInBit >= T_BIT) {
			return T_BIT_STR;
		} else if (fluxInBit >= G_BIT) {
			return G_BIT_STR;
		} else if (fluxInBit >= M_BIT) {
			return M_BIT_STR;
		} else if (fluxInBit >= K_BIT) {
			return K_BIT_STR;
		} else {
			return BIT_STR;
		}
	}
}

 2:对list分组(前n个list大小为groupSize

package com.chinacache.snp.bill.datacontrast.util;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;

public class GroupUtil {

	public static List<List<String>> divideIntoGroups(List<String> list, int groupSize) {
		if (CollectionUtils.isEmpty(list)) {
			return null;
		}

		List<List<String>> groups = new ArrayList<List<String>>();

		List<String> group = null;
		int totalSize = list.size();

		for (int i = 0; i < totalSize; i++) {
			if (i % groupSize == 0) {
				group = new ArrayList<String>();
				groups.add(group);
			}
			group.add(list.get(i));
		}
		return groups;
	}
}

 3:java时间区

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");         //格式日期
TimeZone timezone = TimeZone.getTimeZone("Asia/Shanghai");                //时区
sdf.setTimeZone(timezone );
System.out.println(sdf.format(new Date()));

 4:读取properties配置文件的常量类

    父类:

package com.chinacache.snp.TransferChannelAlarm.util;

import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;

import org.apache.log4j.Logger;

/**
 * 常量配置类,从指定文件读取常量
 * 
 */
public class ConfigurableContants {

    private static final Logger logger = Logger.getLogger(ConfigurableContants.class);

    protected static Properties p = new Properties();

    protected static void init(String propertyFileName) {
        InputStream in = null;
        try {
            in = ConfigurableContants.class.getResourceAsStream(propertyFileName);
            if (in != null)
                p.load(in);
        } catch (IOException e) {
            logger.error("load " + propertyFileName + " into Contants error");
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
        }
    }

    protected static String getProperty(String key, String defaultValue) {
        return p.getProperty(key, defaultValue);
    }

    protected static String getProperty(String key) {
        return getProperty(key, "");
    }

    /**
     * 取以","分割的集合属性
     *
     * @param key
     * @param defaultValue
     * @return
     */
    protected static Set<String> getSetProperty(String key, String defaultValue) {

        String[] strings = p.getProperty(key, defaultValue).split(",");
        HashSet<String> hashSet = new HashSet<String>(strings.length);
        for (String string : strings) {
            hashSet.add(string.trim());
        }
        return hashSet;
    }

    protected static Set<String> getSetProperty(String key) {
        return getSetProperty(key, "");
    }

    protected static Date getPropertyWithDateFormate(String key, String dateFormate) {
        String str = null;
        Date date = null;
        try {
            str = getProperty(key, "");
            date = new SimpleDateFormat(dateFormate).parse(str);
        } catch (ParseException e) {
            logger.error("Date [" + str + "] Error in Contants");
        }
        return date;
    }
}

 子类(每个配置文件一个子类)

package com.chinacache.snp.TransferChannelAlarm.util;

/**
 * 常量类,包括配置文件的常量和程序定义的常量
 * 
 */
public final class SystemConstants extends ConfigurableContants {

	static {
		init("/system.properties");
	}

	public static final String thresholdValue = getProperty("report.threshold", "1");
	public static final String channelState = getProperty("channel.state", "TEST,TRANSFER");
	public static final String topSize = getProperty("channel.top.n", "1000");

	public static final String mailServer = getProperty("email.server", "");
	public static final String addresserUser = getProperty("addresser.user", "");
	public static final String addresserPass = getProperty("addresser.pass", "");
	public static final String cc = getProperty("cc", "baozong.gao@chinacache.com");

	public static String getStringByKey(String key) {
		return getProperty(key);
	}
}

 properties配置文件

report.threshold=0

channel.top.n=100000000
#channel.state=COMMERCIAL,TRANSFER
channel.state=TEST,COMMERCIAL,TRANSFER
TEST=测试
TRANSFER=转走
COMMERCIAL=商用

email.server=corp.chinacache.com
addresser.user=
addresser.pass=
cc=baozong.gao@chinacache.com

 

分享到:
评论

相关推荐

    java sql操作工具类 java sql操作工具类

    java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作...

    java 获取地址工具类 java 获取地址工具类

    java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java ...

    java 转义和反转义工具类 java 转义和反转义工具类

    java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和...

    java Tcp 客户端工具类 java Tcp 客户端工具类

    java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java ...

    Rabbitmq工具类,java工具类RabbitmqUtil

    `RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...

    C++工具类-常用工具类源码

    在C++编程中,工具类是非常重要的一部分,它们提供了一系列通用功能,可以帮助开发者更高效地进行项目开发。本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串...

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    jaava和jsp工具类

    [工具类] 获得汉字拼音首字母的java工具类 .java [工具类] 获取绝对路径 .java [工具类] 记录log日志文件的工具类 .java [工具类] 连接数据库的工具类 .java [工具类] 使用Java程序来实现HTTP文件的队列下载 ....

    C#工具类库类库 包含所有的常用工具类

    在C#编程中,工具类库是开发人员经常会用到的一种资源,它们提供了一系列预定义的方法和功能,以便简化各种常见的编程任务。标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具...

    Java开发工具类

    Class类工具 \Cookie工具类 \excel读取 工具类\Java如何生成验证码图片和点击刷新验证码\java获取当前月第一天和最后一天,上个月第一天和最后一天\java实现ftp文件的上传与下载\Json工具类 - JsonUtils.java\JS...

    java Base64工具类

    java Base64工具类 java Base64工具类java Base64工具类 java Base64工具类 java Base64工具类 java Base64工具类java Base64工具类 java Base64工具类 java Base64工具类 java Base64工具类java Base64工具类 java ...

    Java文件工具类

    Java文件工具类

    jedisUtil工具类java

    jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...

    java日志工具类 java日志工具类

    java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志...

    HTTPClient工具类,完整

    HTTPClient工具类,完整,HTTPClient工具类,完整,HTTPClient工具类,完整HTTPClient工具类,完整,HTTPClient工具类,完整

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt...

    微信公众号支付签名生成工具类和xml转换工具类和双向验证请求工具类

    微信公众号支付签名生成工具类和xml和map转换工具类和双向验证请求工具类

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...

    java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类

    java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件...

    个人总结常用经典Utils工具类

    1、Utils工具类有String工具类、XmlNode节点工具类、BeanFactory相关、Common工具类、Cookie工具类、Date工具类、Http工具类、JDBC工具类、日志Log工具类、Servlet相关等。2、工具类省了重复造轮子的工作,可以直接...

Global site tag (gtag.js) - Google Analytics