java常用工具类(不定时更新)

1、常用的json字符串工具类

以下为json工具类代码:

package com.ct10000.sc.commons.toolkit.jsonTool;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import javax.xml.bind.*;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;

/**
 * 处理json的工具类
 *
 * Created by ryh on 15-9-15.
 */
public class JsonUtility {

    /**
     * 记录日志信息
     */
    private static Logger logger = LogManager.getLogger(JsonUtility.class);

    /**
     * 用于处理json字符串的静态对象
     */
    private static ObjectMapper objectMapper = new ObjectMapper();

    /**
     * 默认构造器
     */
    private JsonUtility() {
    }

    /**
     * Object的对象进行编码
     *
     * @param object 编码对象
     * @return 一个编码后的字符串
     * @throws Exception
     */
    public static String convertToXml(Object object) throws Exception {
        return convertToXml(object, "UTF-8");
    }

    /**
     * object的对象转化成XML字符串
     *
     * @param object 转化对象
     * @param encoding 编码方式
     * @return 一个对象格式的XML字符串
     * @throws Exception
     */
    public static String convertToXml(Object object, String encoding) throws JAXBException{
        String result = "";
        try {
            JAXBContext context = JAXBContext.newInstance(object.getClass());
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
            StringWriter writer = new StringWriter();
            marshaller.marshal(object, writer);
            result = writer.toString();
        } catch (JAXBException e) {
            logger.error("对象转xml字符串的错误日志-->>"+e.getMessage(), e);
        }
        logger.debug("生成对象转XML字符串的调试日志-->>"+result);
        return result;
    }

    /**
     * xml字符串转换成JavaBean实体
     *
     * @param xml   XML字符串
     * @param clazz 字节码类型
     * @param <T>   转换的泛型
     * @return 一个转化的实体对象
     */
    public static <T> T converyToJavaBean(String xml, Class<T> clazz) throws JAXBException{
        T t = null;
        try {
            JAXBContext context = JAXBContext.newInstance(clazz);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            t = (T) unmarshaller.unmarshal(new StringReader(xml));
        } catch (JAXBException e) {
            logger.error("xml转实体bean的错误日志-->>"+e.getMessage(), e);
        }
        return t;
    }

    /**
     * 对象转换为json字符串
     *
     * @param object 转化的实体对象
     * @return 装换后的json字符串
     */
    public static synchronized String objectToJson(Object object) throws IOException {
        Writer writer = null;
        String json = "";
        try {
            writer = new StringWriter();
            objectMapper.writeValue(writer, object);
            json = writer.toString();
        } catch (IOException e) {
            logger.error("实体对象转JSON字符串的错误日志-->>"+e.getMessage(),e);
        } finally {
            try {
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                logger.error("实体对象转JSON字符串关闭writer的错误日志-->>"+e.getMessage(),e);
            }
        }
        logger.debug("生成实体转JSON字符串的调试日志-->>"+json);
        return json;
    }

    /**
     * json字符转换成对象
     *
     * @param json  json字符串
     * @param clazz 实体对象的class
     * @param <T>   泛型实体
     * @return 返回转换后的实体对象
     */
    public static synchronized <T> T jsonToObject(String json, Class<T> clazz) throws IOException {
        T object = null;
        try {
            object = objectMapper.readValue(json, clazz);
        } catch (IOException e) {
            logger.error("JSON字符串转实体bean的错误日志-->>"+e.getMessage(),e);
        }
        return object;
    }


}

2、常用的字符串工具类

以下为字符串工具类代码:

package com.ct10000.sc.commons.toolkit.stringTool;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.UUID;

/**
 * 常用工具类
 * 

* 1、生成UUID字符串 * 2、随机生成3位数字符串 * Created by ryh on 15-4-2. */ public class StringUtility { /** * 记录日志信息 */ private static Logger logger = LogManager.getLogger(StringUtility.class); /** * 生成UUID字符串 * * @return 32位的UUID密钥 */ public static String getUUID() throws Exception{ String uuid = UUID.randomUUID().toString(); uuid = uuid.substring(0, 8) + uuid.substring(9, 13) + uuid.substring(14, 18) + uuid.substring(19, 23) + uuid.substring(24); logger.debug("获取32位的UUID的调试日志-->>" + uuid); return uuid; } /** * 随机生成3位数字符串 * * @return 一个三位数的随机码字符串 */ public static String getRandom() { int number; while (true) { number = (int) (Math.random() * 1000); if (number >= 100 && number < 1000) { break; } } String string=String.valueOf(number); logger.debug("获取3位的随机码字符串的调试日志-->>" + string); return string; } }

3、时间日期工具类

以下为时间日期工具类代码:

package com.ct10000.sc.commons.toolkit.dataTool;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间格式转字符串处理工具类
 *
 * Created by ryh on 15-9-15.
 */
public class DateUtility {

    /**
     * 记录日志信息
     */
    private static Logger logger = LogManager.getLogger(DateUtility.class);

    /**
     * 将当前时间格式化,格式化的格式yyyy-MM-dd HH:mm:ss
     *
     * @return 一个格式化的字符串time
     */
    public static String getTime() throws Exception{
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = formatter.format(date);
        logger.debug("当前时间格式化的调试日志-->>" + time);
        return time;
    }

    /**
     * 将当前时间格式化,格式化的格式yyyy-MM-dd
     *
     * @return 一个格式化的字符串time
     */
    public static String getDate() throws Exception {
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String time = formatter.format(date);
        logger.debug("当前时间格式化的调试日志-->>" + time);
        return time;
    }

    /**
     * 将输入时间格式化,格式化的格式yyyy-MM-dd HH:mm:ss
     *
     * @return 一个格式化的字符串time
     */
    public static String timeToString(Date date) throws Exception {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = formatter.format(date);
        logger.debug("输入时间格式化的调试日志-->>" + time);
        return time;
    }

    /**
     * 将输入时间格式化,格式化的格式yyyy-MM-dd
     *
     * @return 一个格式化的字符串time
     */
    public static String dateToString(Date date) throws Exception {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String time = formatter.format(date);
        logger.debug("输入时间格式化的调试日志-->>" + time);
        return time;
    }

    /**
     * 把标准时区转化成当前时区
     *
     * @param date 时间
     * @return 当前时区的时间
     * @throws Exception
     */
    public static Date dateOfDate(Date date) throws Exception{
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR, +8);
        Date date1=calendar.getTime();
        return date1;
    }

}
4、MD5工具类

以下为MD5工具类代码:

package com.ct10000.sc.commons.toolkit.md5Tool;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5工具类
 *
 * Created by ryh on 15-9-16.
 */
public class MD5Utility {

    /**
     * 记录日志信息
     */
    private static Logger logger = LogManager.getLogger(MD5Utility.class);

    /**
     * MD5加码 生成32md5(不可逆的)
     *
     * @param inStr 加密的字符串
     * @return 一个加密的32位密钥
     */
    public static String string2MD5(String inStr) throws NoSuchAlgorithmException{
        MessageDigest md5;
        String string="";
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            logger.error("MD5加密实现的错误日志-->>"+e.getMessage(), e);
            return string;
        }
        char[] charArray = inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];
        for (int i = 0; i < charArray.length; i++) {
            byteArray[i] = (byte) charArray[i];
        }
        byte[] md5Bytes = md5.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16) {
                hexValue.append("0");
            }
            hexValue.append(Integer.toHexString(val));
        }
        string=hexValue.toString();
        logger.debug("MD5加密的32位密钥的调试日志-->>" + string);
        return string;
    }

    /**
     * 加密解密算法 执行一次加密,两次解密
     *
     * @param inStr 编译的字符串
     * @return 返回一个二次加密的字符串
     */
    public static String convertMD5(String inStr) throws Exception{
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String string = new String(a);
        logger.debug("MD5加密的二次加密的字符串的调试日志-->>" + string);
        return string;
    }

}



你可能感兴趣的:(java)