本文主要介绍自己在开发过程中总结的一些Java工具类,主要包括SimpleCache——小型缓存、AutoGetDataCache——自动获取新数据的缓存, ArrayUtils——数组工具类、FileUtils——文件操作工具类、JSONUtils——Json工具类、ListUtils——list工具类、MapUtils——map工具类、ObjectUtils——Object工具类、RandomUtils——随机数工具类、SerializeUtils——序列化工具类、StringUtils——字符串工具类、HttpUtils——http工具函数。
google code地址:http://code.google.com/p/trinea-java-common/
github地址:https://github.com/Trinea/JavaCommon
1、AutoGetDataCache——自动获取新数据的缓存
介绍见自动获取新数据的缓存AutoGetDataCache
2、SimpleCache——小型缓存
是AutoGetDataCache的基类,大部分接口同AutoGetDataCache,可以定义缓存满时删除元素类型、缓存失效时间、缓存持久化等等。
关于缓存满时删除元素类型目前有不删除、对象进入缓存时间(先进入先删除、后进入先删除)、对象上次使用时间(先使用先删除、后使用先删除)、对象使用次数(使用少先删除、使用多先删除)、对象优先级(优先级低先删除、优先级高先删除)、对象值(值小先删除、值大先删除)几种,用户可以自己根据需要定义,继承CacheFullRemoveType即可。
3、ArrayUtils——数组工具类
包含org.apache.commons.lang3.ArrayUtils中的功能
public static <V> V getLast(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到array中某个元素(从前到后第一次匹配)的前一个元素
public static <V> V getNext(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到array中某个元素(从前到后第一次匹配)的后一个元素
4、FileUtils——文件操作工具类
public static StringBuilder readFile(String filePath) 读文件
public static boolean writeFile(String filePath, String content, boolean append) 写文件
public static List<String> readFileToList(String filePath) 读文件,每行作为list的一个元素
public static String getFileNameWithoutExtension(String filePath) 从路径中获得文件名(不包含后缀名)
public static String getFileName(String filePath) 从路径中获得文件名(包含后缀名)
public static String getFolderName(String filePath) 从路径中获得文件夹路径
public static String getFileExtension(String filePath) 从路径中获得文件后缀名
public static boolean makeFolder(String filePath) 根据文件路径循环创建文件的文件夹
public static boolean isFileExist(String filePath) 判断文件是否存在
public static boolean isFolderExist(String directoryPath) 判断文件夹是否存在
public static boolean deleteFile(String path) 删除文件或空文件夹
5、JSONUtils——Json工具类
public static Integer getInt(String jsonData, String key, Integer defaultValue)
public static Integer getInt(JSONObject jsonObject, String key, Integer defaultValue)
从json数据串中得到某个Integer key的值
类似的还有int getInt、getBoolean、Long getLong、long getLong、getString、getStringArray、getJSONObject、getJSONArray
public static Map<String, String> parseKeyAndValueToMap(JSONObject sourceObj)
public static Map<String, String> parseKeyAndValueToMap(String source)
将key和value键值对形式的json转换成map
6、ListUtils——list工具类
public static <V> boolean isEmpty(List<V> sourceList)
判断list是否为空或大小为0
public static String join(List<String> list)
public static String join(List<String> list, char separator)
public static String join(List<String> list, String separator)
将list中所有元素以分隔符拼接返回
public static <V> boolean addDistinctEntry(List<V> sourceList, V entry)
向sourceList中新增不重复元素
public static <V> int addDistinctList(List<V> sourceList, List<V> entryList)
向sourceList中插入包含在entryList而不包含在sourceList中的元素
public static <V> int distinctList(List<V> sourceList)
去除list中重复的元素
public static <V> boolean addListNotNullValue(List<V> sourceList, V value)
向list中新增非null value
public static <V> V getLast(List<V> sourceList, V value)
得到array中某个元素(从前到后第一次匹配)的前一个元素
public static <V> V getNext(List<V> sourceList, V value)
得到array中某个元素(从前到后第一次匹配)的后一个元素
public static <V> List<V> invertList(List<V> sourceList)
将list倒置
7、MapUtils——map工具类
public static <K, V> boolean isEmpty(Map<K, V> sourceMap)
判断map是否为空或大小为0
public static boolean putMapNotEmptyKey(Map<String, String> map, String key, String value)
向map中put key和value对,key必须非null,并且为非空字符串
public static boolean putMapNotEmptyKeyAndValue(Map<String, String> map, String key, String value)
向map中put key和value对,key和value都必须非null,并且为非空字符串
public static boolean putMapNotEmptyKeyAndValue(Map<String, String> map, String key, String value, String defaultValue)
向map中put key和value对,key必须非null,并且为非空字符串,若value为null或者空字符串,put defaultValue
public static <K, V> K getKeyByValue(Map<K, V> map, V value)
根据value得到key的值,从头开始匹配,若存在返回匹配的第一个key,否则返回null
public static boolean putMapNotEmptyKey(Map<String, String> map, String key, String value)
向map中put key和value对,key必须非null,并且为非空字符串
public static boolean putMapNotEmptyKeyAndValue(Map<String, String> map, String key, String value)
向map中put key和value对,key和value都必须非null,并且为非空字符串
public static boolean putMapNotEmptyKeyAndValue(Map<String, String> map, String key, String value, String defaultValue)
向map中put key和value对,key必须非null,并且为非空字符串,若value为null或者空字符串,put defaultValue
8、ObjectUtils——Object工具类
public static boolean isEquals(Object actual, Object expected)
比较两个对象是否相等
public static <V> int compare(V v1, V v2)
比较两个值的大小
public static Integer[] transformIntArray(int[] source)
public static int[] transformIntArray(Integer[] source)
int数组和Integer数组之间转换
public static Long[] transformLongArray(long[] source)
public static long[] transformLongArray(Long[] source)
long数组和Long数组之间转换
9、RandomUtils——随机数工具类
public static String getRandomNumbersAndLetters(int length)
得到固定长度的随机字符串,字符串由数字和大小写字母混合组成
public static String getRandomNumbers(int length)
得到固定长度的随机字符串,字符串由数字混合组成
public static String getRandomLetters(int length)
得到固定长度的随机字符串,字符串由大小写字母混合组成
public static String getRandomCapitalLetters(int length)
得到固定长度的随机字符串,字符串由大写字母混合组成
public static String getRandomLowerCaseLetters(int length)
得到固定长度的随机字符串,字符串由小写字母混合组成
public static String getRandom(String source, int length)
public static String getRandom(char[] sourceChar, int length)
得到固定长度的随机字符串,字符串由sourceChar中字符混合组成
10、SerializeUtils——序列化工具类
public static void serialization(String filePath, Object obj)
序列化
public static Object deserialization(String filePath)
反序列化
11、StringUtils——字符串工具类
包含org.apache.commons.lang3.StringUtils中的功能
public static boolean isEquals(String actual, String expected) 比较两个String,包含为null情况
public static String nullStrToEmpty(String str)
public static String capitalizeFirstLetter(String str) 将字符串首字母大写后返回
public static String getHrefInnerHtml(String href) 得到href链接的innerHtml
public static String htmlEscapeCharsToString(String source) html的转义字符转换成正常的字符串
12、HttpUtils——http工具函数
http get请求,各种类型如下:
public static String httpGet(String url)
public static String httpGet(String url, int timeOut)
public static String httpGet(String url, Map<String, String> parasMap)
public static String httpGet(String url, String paras)
public static String httpGetEncodeParas(String url, Map<String, String> parasMap)
http post请求,各种类型如下:
public static String httpPost(String url, String paras)
public static String httpPost(String url, String paras, int timeOut)
public static String httpPost(String url, Map<String, String> parasMap)
public static String httpPostEncodeParas(String url, Map<String, String> parasMap)
http post请求,可传送文件,各种类型如下:
public static String httpPostWithFile(String url, String paras, Map<String, String> filePathMap)
public static String httpPostWithFile(String url, String paras, Map<String, String> filePathMap, int timeOut)
public static String httpPostWithFile(String url, Map<String, String> parasMap, Map<String, String> filePathMap)
public static String httpPostEncodeParasWithFile(String url, String paras, Map<String, String> filePathMap)
public static String httpPostEncodeParasWithFile(String url, Map<String, String> parasMap, Map<String, String> filePathMap)
除了以上的请求外,还包括一些相关字符串工具函数
utf8进行解码 public static String utf8Decode(String url)
utf8进行编码 public static String utf8Encode(String url)
得到有序的参数串 public static String getOrderedParas(Map<String, String> parasMap)
得到有序的参数串,参数的值经过utf-8编码 public static String getOrderedValueEncodeParas(Map<String, String> parasMap)
得到参数串 public static String getParas(Map<String, String> parasMap)
解析字符串得到key和value对应的map public static Map<String, String> getParasMap(String paras)
public static Map<String, String> getParasMap(String paras, String parametersSeparator)
public static String getQueryParameter(String url, String key)
public static String getQueryParameter(String url, String key, String pathParaSeparator, String paraSeparator)
根据key得到url中的参数值
public static String getUrlPath(String url) 返回一个url的非query部分
public static String getUrlWithOrderedParas(String url, Map<String, String> parasMap)
public static String getUrlWithOrderedValueEncodeParas(String url, Map<String, String> parasMap)
public static String getUrlWithParas(String url, Map<String, String> parasMap)
public static String getUrlWithValueEncodeParas(String url, Map<String, String> parasMap)
得到url
public static String getValueEncodeParas(Map<String, String> parasMap) 得到参数串,参数的值经过utf-8编码