java常用工具類(不定時更新)
阿新 • • 發佈:2019-02-08
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; importjava.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; /** * 常用工具類 * <p/> * 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加碼 生成32位md5碼(不可逆的) * * @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; } }