JSON转换工具

package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;/*** json转换工具类*/
public class JsonUtils {// 定义jackson对象private static final ObjectMapper MAPPER = new ObjectMapper();/*** 将对象转换成json字符串。* <p>Title: pojoToJson</p>* <p>Description: </p>* @param data* @return*/public static String objectToJson(Object data) {try {String string = MAPPER.writeValueAsString(data);return string;} catch (JsonProcessingException e) {e.printStackTrace();}return null;}/*** 将json结果集转化为对象* * @param jsonData json数据* @param clazz 对象中的object类型* @return*/public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {try {T t = MAPPER.readValue(jsonData, beanType);return t;} catch (Exception e) {e.printStackTrace();}return null;}/*** 将json数据转换成pojo对象list* <p>Title: jsonToList</p>* <p>Description: </p>* @param jsonData* @param beanType* @return*/public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try {List<T> list = MAPPER.readValue(jsonData, javaType);return list;} catch (Exception e) {e.printStackTrace();}return null;}}

cookie的读写

package com.taotao.common.utils;import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** * Cookie 工具类**/
public final class CookieUtils {/*** 得到Cookie的值, 不编码* * @param request* @param cookieName* @return*/public static String getCookieValue(HttpServletRequest request, String cookieName) {return getCookieValue(request, cookieName, false);}/*** 得到Cookie的值,* * @param request* @param cookieName* @return*/public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) {Cookie[] cookieList = request.getCookies();if (cookieList == null || cookieName == null) {return null;}String retValue = null;try {for (int i = 0; i < cookieList.length; i++) {if (cookieList[i].getName().equals(cookieName)) {if (isDecoder) {retValue = URLDecoder.decode(cookieList[i].getValue(), "UTF-8");} else {retValue = cookieList[i].getValue();}break;}}} catch (UnsupportedEncodingException e) {e.printStackTrace();}return retValue;}/*** 得到Cookie的值,* * @param request* @param cookieName* @return*/public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) {Cookie[] cookieList = request.getCookies();if (cookieList == null || cookieName == null) {return null;}String retValue = null;try {for (int i = 0; i < cookieList.length; i++) {if (cookieList[i].getName().equals(cookieName)) {retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);break;}}} catch (UnsupportedEncodingException e) {e.printStackTrace();}return retValue;}/*** 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码*/public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,String cookieValue) {setCookie(request, response, cookieName, cookieValue, -1);}/*** 设置Cookie的值 在指定时间内生效,但不编码*/public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,String cookieValue, int cookieMaxage) {setCookie(request, response, cookieName, cookieValue, cookieMaxage, false);}/*** 设置Cookie的值 不设置生效时间,但编码*/public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,String cookieValue, boolean isEncode) {setCookie(request, response, cookieName, cookieValue, -1, isEncode);}/*** 设置Cookie的值 在指定时间内生效, 编码参数*/public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,String cookieValue, int cookieMaxage, boolean isEncode) {doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode);}/*** 设置Cookie的值 在指定时间内生效, 编码参数(指定编码)*/public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,String cookieValue, int cookieMaxage, String encodeString) {doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString);}/*** 删除Cookie带cookie域名*/public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,String cookieName) {doSetCookie(request, response, cookieName, "", -1, false);}/*** 设置Cookie的值,并使其在指定时间内生效* * @param cookieMaxage cookie生效的最大秒数*/private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) {try {if (cookieValue == null) {cookieValue = "";} else if (isEncode) {cookieValue = URLEncoder.encode(cookieValue, "utf-8");}Cookie cookie = new Cookie(cookieName, cookieValue);if (cookieMaxage > 0)cookie.setMaxAge(cookieMaxage);if (null != request) {// 设置域名的cookieString domainName = getDomainName(request);System.out.println(domainName);if (!"localhost".equals(domainName)) {cookie.setDomain(domainName);}}cookie.setPath("/");response.addCookie(cookie);} catch (Exception e) {e.printStackTrace();}}/*** 设置Cookie的值,并使其在指定时间内生效* * @param cookieMaxage cookie生效的最大秒数*/private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,String cookieName, String cookieValue, int cookieMaxage, String encodeString) {try {if (cookieValue == null) {cookieValue = "";} else {cookieValue = URLEncoder.encode(cookieValue, encodeString);}Cookie cookie = new Cookie(cookieName, cookieValue);if (cookieMaxage > 0)cookie.setMaxAge(cookieMaxage);if (null != request) {// 设置域名的cookieString domainName = getDomainName(request);System.out.println(domainName);if (!"localhost".equals(domainName)) {cookie.setDomain(domainName);}}cookie.setPath("/");response.addCookie(cookie);} catch (Exception e) {e.printStackTrace();}}/*** 得到cookie的域名*/private static final String getDomainName(HttpServletRequest request) {String domainName = null;String serverName = request.getRequestURL().toString();if (serverName == null || serverName.equals("")) {domainName = "";} else {serverName = serverName.toLowerCase();serverName = serverName.substring(7);final int end = serverName.indexOf("/");serverName = serverName.substring(0, end);final String[] domains = serverName.split("\\.");int len = domains.length;if (len > 3) {// www.xxx.com.cndomainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1];} else if (len <= 3 && len > 1) {// xxx.com or xxx.cndomainName = "." + domains[len - 2] + "." + domains[len - 1];} else {domainName = serverName;}}if (domainName != null && domainName.indexOf(":") > 0) {String[] ary = domainName.split("\\:");domainName = ary[0];}return domainName;}}

HttpClientUtil

package com.taotao.utils;import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;public class HttpClientUtil {public static String doGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执行请求response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}public static String doGet(String url) {return doGet(url, null);}public static String doPost(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (param != null) {List<NameValuePair> paramList = new ArrayList<>();for (String key : param.keySet()) {paramList.add(new BasicNameValuePair(key, param.get(key)));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);httpPost.setEntity(entity);}// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}public static String doPost(String url) {return doPost(url, null);}public static String doPostJson(String url, String json) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}
}

FastDFSClient工具类

package cn.itcast.fastdfs.cliennt;import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;public class FastDFSClient {private TrackerClient trackerClient = null;private TrackerServer trackerServer = null;private StorageServer storageServer = null;private StorageClient1 storageClient = null;public FastDFSClient(String conf) throws Exception {if (conf.contains("classpath:")) {conf = conf.replace("classpath:", this.getClass().getResource("/").getPath());}ClientGlobal.init(conf);trackerClient = new TrackerClient();trackerServer = trackerClient.getConnection();storageServer = null;storageClient = new StorageClient1(trackerServer, storageServer);}/*** 上传文件方法* <p>Title: uploadFile</p>* <p>Description: </p>* @param fileName 文件全路径* @param extName 文件扩展名,不包含(.)* @param metas 文件扩展信息* @return* @throws Exception*/public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {String result = storageClient.upload_file1(fileName, extName, metas);return result;}public String uploadFile(String fileName) throws Exception {return uploadFile(fileName, null, null);}public String uploadFile(String fileName, String extName) throws Exception {return uploadFile(fileName, extName, null);}/*** 上传文件方法* <p>Title: uploadFile</p>* <p>Description: </p>* @param fileContent 文件的内容,字节数组* @param extName 文件扩展名* @param metas 文件扩展信息* @return* @throws Exception*/public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {String result = storageClient.upload_file1(fileContent, extName, metas);return result;}public String uploadFile(byte[] fileContent) throws Exception {return uploadFile(fileContent, null, null);}public String uploadFile(byte[] fileContent, String extName) throws Exception {return uploadFile(fileContent, extName, null);}
}
public class FastDFSTest {@Testpublic void testFileUpload() throws Exception {// 1、加载配置文件,配置文件中的内容就是tracker服务的地址。ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");// 2、创建一个TrackerClient对象。直接new一个。TrackerClient trackerClient = new TrackerClient();// 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。TrackerServer trackerServer = trackerClient.getConnection();// 4、创建一个StorageServer的引用,值为nullStorageServer storageServer = null;// 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用StorageClient storageClient = new StorageClient(trackerServer, storageServer);// 6、使用StorageClient对象上传图片。//扩展名不带“.”String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg", "jpg", null);// 7、返回数组。包含组名和图片的路径。for (String string : strings) {System.out.println(string);}}
}

获取异常的堆栈信息

package com.taotao.utils;import java.io.PrintWriter;
import java.io.StringWriter;public class ExceptionUtil {/*** 获取异常的堆栈信息* * @param t* @return*/public static String getStackTrace(Throwable t) {StringWriter sw = new StringWriter();PrintWriter pw = new PrintWriter(sw);try {t.printStackTrace(pw);return sw.toString();} finally {pw.close();}}
}

easyUIDataGrid对象返回值

package com.taotao.result;import java.util.List;/*** easyUIDataGrid对象返回值* <p>Title: EasyUIResult</p>* <p>Description: </p>* <p>Company: www.itcast.com</p> * @author    入云龙* @date 2015年7月21日下午4:12:52* @version 1.0*/
public class EasyUIResult {private Integer total;private List<?> rows;public EasyUIResult(Integer total, List<?> rows) {this.total = total;this.rows = rows;}public EasyUIResult(long total, List<?> rows) {this.total = (int) total;this.rows = rows;}public Integer getTotal() {return total;}public void setTotal(Integer total) {this.total = total;}public List<?> getRows() {return rows;}public void setRows(List<?> rows) {this.rows = rows;}}

ftp上传下载工具类

package com.taotao.utils;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;/*** ftp上传下载工具类* <p>Title: FtpUtil</p>* <p>Description: </p>* <p>Company: www.itcast.com</p> * @author  入云龙* @date 2015年7月29日下午8:11:51* @version 1.0*/
public class FtpUtil {/** * Description: 向FTP服务器上传文件 * @param host FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param basePath FTP服务器基础目录* @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath* @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */  public static boolean uploadFile(String host, int port, String username, String password, String basePath,String filePath, String filename, InputStream input) {boolean result = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(host, port);// 连接FTP服务器// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}//切换到上传目录if (!ftp.changeWorkingDirectory(basePath+filePath)) {//如果目录不存在创建目录String[] dirs = filePath.split("/");String tempPath = basePath;for (String dir : dirs) {if (null == dir || "".equals(dir)) continue;tempPath += "/" + dir;if (!ftp.changeWorkingDirectory(tempPath)) {if (!ftp.makeDirectory(tempPath)) {return result;} else {ftp.changeWorkingDirectory(tempPath);}}}}//设置上传文件的类型为二进制类型ftp.setFileType(FTP.BINARY_FILE_TYPE);//上传文件if (!ftp.storeFile(filename, input)) {return result;}input.close();ftp.logout();result = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}/** * Description: 从FTP服务器下载文件 * @param host FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param remotePath FTP服务器上的相对路径 * @param fileName 要下载的文件名 * @param localPath 下载后保存到本地的路径 * @return */  public static boolean downloadFile(String host, int port, String username, String password, String remotePath,String fileName, String localPath) {boolean result = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(host, port);// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录FTPFile[] fs = ftp.listFiles();for (FTPFile ff : fs) {if (ff.getName().equals(fileName)) {File localFile = new File(localPath + "/" + ff.getName());OutputStream is = new FileOutputStream(localFile);ftp.retrieveFile(ff.getName(), is);is.close();}}ftp.logout();result = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}public static void main(String[] args) {try {  FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg"));  boolean flag = uploadFile("192.168.25.133", 21, "ftpuser", "ftpuser", "/home/ftpuser/www/images","/2015/01/21", "gaigeming.jpg", in);  System.out.println(flag);  } catch (FileNotFoundException e) {  e.printStackTrace();  }  }
}

各种id生成策略

package com.taotao.utils;import java.util.Random;/*** 各种id生成策略* <p>Title: IDUtils</p>* <p>Description: </p>* @date  2015年7月22日下午2:32:10* @version 1.0*/
public class IDUtils {/*** 图片名生成*/public static String genImageName() {//取当前时间的长整形值包含毫秒long millis = System.currentTimeMillis();//long millis = System.nanoTime();//加上三位随机数Random random = new Random();int end3 = random.nextInt(999);//如果不足三位前面补0String str = millis + String.format("%03d", end3);return str;}/*** 商品id生成*/public static long genItemId() {//取当前时间的长整形值包含毫秒long millis = System.currentTimeMillis();//long millis = System.nanoTime();//加上两位随机数Random random = new Random();int end2 = random.nextInt(99);//如果不足两位前面补0String str = millis + String.format("%02d", end2);long id = new Long(str);return id;}public static void main(String[] args) {for(int i=0;i< 100;i++)System.out.println(genItemId());}
}

上传图片返回值

package com.result;
/*** 上传图片返回值* <p>Title: PictureResult</p>* <p>Description: </p>* <p>Company: www.itcast.com</p> * @author  入云龙* @date 2015年7月22日下午2:09:02* @version 1.0*/
public class PictureResult {/*** 上传图片返回值,成功:0 失败:1 */private Integer error;/*** 回显图片使用的url*/private String url;/*** 错误时的错误消息*/private String message;public PictureResult(Integer state, String url) {this.url = url;this.error = state;}public PictureResult(Integer state, String url, String errorMessage) {this.url = url;this.error = state;this.message = errorMessage;}public Integer getError() {return error;}public void setError(Integer error) {this.error = error;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}

自定义响应结构

package com.result;import java.util.List;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;/*** 自定义响应结构*/
public class TaotaoResult {// 定义jackson对象private static final ObjectMapper MAPPER = new ObjectMapper();// 响应业务状态private Integer status;// 响应消息private String msg;// 响应中的数据private Object data;public static TaotaoResult build(Integer status, String msg, Object data) {return new TaotaoResult(status, msg, data);}public static TaotaoResult ok(Object data) {return new TaotaoResult(data);}public static TaotaoResult ok() {return new TaotaoResult(null);}public TaotaoResult() {}public static TaotaoResult build(Integer status, String msg) {return new TaotaoResult(status, msg, null);}public TaotaoResult(Integer status, String msg, Object data) {this.status = status;this.msg = msg;this.data = data;}public TaotaoResult(Object data) {this.status = 200;this.msg = "OK";this.data = data;}//    public Boolean isOK() {//        return this.status == 200;
//    }public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}/*** 将json结果集转化为TaotaoResult对象* * @param jsonData json数据* @param clazz TaotaoResult中的object类型* @return*/public static TaotaoResult formatToPojo(String jsonData, Class<?> clazz) {try {if (clazz == null) {return MAPPER.readValue(jsonData, TaotaoResult.class);}JsonNode jsonNode = MAPPER.readTree(jsonData);JsonNode data = jsonNode.get("data");Object obj = null;if (clazz != null) {if (data.isObject()) {obj = MAPPER.readValue(data.traverse(), clazz);} else if (data.isTextual()) {obj = MAPPER.readValue(data.asText(), clazz);}}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);} catch (Exception e) {return null;}}/*** 没有object对象的转化* * @param json* @return*/public static TaotaoResult format(String json) {try {return MAPPER.readValue(json, TaotaoResult.class);} catch (Exception e) {e.printStackTrace();}return null;}/*** Object是集合转化* * @param jsonData json数据* @param clazz 集合中的类型* @return*/public static TaotaoResult formatToList(String jsonData, Class<?> clazz) {try {JsonNode jsonNode = MAPPER.readTree(jsonData);JsonNode data = jsonNode.get("data");Object obj = null;if (data.isArray() && data.size() > 0) {obj = MAPPER.readValue(data.traverse(),MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);} catch (Exception e) {return null;}}}

jedis操作

package com.taotao.jedis;public interface JedisClient {String set(String key, String value);String get(String key);Boolean exists(String key);Long expire(String key, int seconds);Long ttl(String key);Long incr(String key);Long hset(String key, String field, String value);String hget(String key, String field);Long hdel(String key, String... field);
}
package com.taotao.jedis;import org.springframework.beans.factory.annotation.Autowired;import redis.clients.jedis.JedisCluster;public class JedisClientCluster implements JedisClient {@Autowiredprivate JedisCluster jedisCluster;@Overridepublic String set(String key, String value) {return jedisCluster.set(key, value);}@Overridepublic String get(String key) {return jedisCluster.get(key);}@Overridepublic Boolean exists(String key) {return jedisCluster.exists(key);}@Overridepublic Long expire(String key, int seconds) {return jedisCluster.expire(key, seconds);}@Overridepublic Long ttl(String key) {return jedisCluster.ttl(key);}@Overridepublic Long incr(String key) {return jedisCluster.incr(key);}@Overridepublic Long hset(String key, String field, String value) {return jedisCluster.hset(key, field, value);}@Overridepublic String hget(String key, String field) {return jedisCluster.hget(key, field);}@Overridepublic Long hdel(String key, String... field) {return jedisCluster.hdel(key, field);}}
package com.taotao.jedis;import org.springframework.beans.factory.annotation.Autowired;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;public class JedisClientPool implements JedisClient {@Autowiredprivate JedisPool jedisPool;@Overridepublic String set(String key, String value) {Jedis jedis = jedisPool.getResource();String result = jedis.set(key, value);jedis.close();return result;}@Overridepublic String get(String key) {Jedis jedis = jedisPool.getResource();String result = jedis.get(key);jedis.close();return result;}@Overridepublic Boolean exists(String key) {Jedis jedis = jedisPool.getResource();Boolean result = jedis.exists(key);jedis.close();return result;}@Overridepublic Long expire(String key, int seconds) {Jedis jedis = jedisPool.getResource();Long result = jedis.expire(key, seconds);jedis.close();return result;}@Overridepublic Long ttl(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.ttl(key);jedis.close();return result;}@Overridepublic Long incr(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.incr(key);jedis.close();return result;}@Overridepublic Long hset(String key, String field, String value) {Jedis jedis = jedisPool.getResource();Long result = jedis.hset(key, field, value);jedis.close();return result;}@Overridepublic String hget(String key, String field) {Jedis jedis = jedisPool.getResource();String result = jedis.hget(key, field);jedis.close();return result;}@Overridepublic Long hdel(String key, String... field) {Jedis jedis = jedisPool.getResource();Long result = jedis.hdel(key, field);jedis.close();return result;}}

正则表达式

import org.apache.log4j.Logger;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;public final class RegexpUtils {private static Logger log = Logger.getLogger(RegexpUtils.class);private RegexpUtils() {}/*** 匹配图象* * * 格式: /相对路径/文件名.后缀 (后缀为gif,dmp,png)* * 匹配 : /forum/head_icon/admini2005111_ff.gif 或 admini2005111.dmp* * * 不匹配: c:/admins4512.gif* */public static final String ICON_REGEXP = "^(/{0,1}//w){1,}//.(gif|dmp|png|jpg)$|^//w{1,}//.(gif|dmp|png|jpg)$";/*** 匹配email地址* * * 格式: XXX@XXX.XXX.XX* * 匹配 : foo@bar.com 或 foobar@foobar.com.au* * 不匹配: foo@bar 或 $$@bar.com* */public static final String EMAIL_REGEXP = "(?://w[-._//w]*//w@//w[-._//w]*//w//.//w{2,3}$)";/*** 匹配匹配并提取url* * * 格式: XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX* * 匹配 : http://www.suncer.com 或news://www* * 不匹配: c:/window* */public static final String URL_REGEXP = "(//w+)://([^/:]+)(://d*)?([^#//s]*)";/*** 匹配并提取http* * 格式: http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX 或 ftp://XXX.XXX.XXX 或* https://XXX* * 匹配 : http://www.suncer.com:8080/index.html?login=true* * 不匹配: news://www* */public static final String HTTP_REGEXP = "(http|https|ftp)://([^/:]+)(://d*)?([^#//s]*)";/*** 匹配日期* * * 格式(首位不为0): XXXX-XX-XX或 XXXX-X-X* * * 范围:1900--2099* * * 匹配 : 2005-04-04* * * 不匹配: 01-01-01* */public static final String DATE_BARS_REGEXP = "^((((19){1}|(20){1})\\d{2})|\\d{2})-[0,1]?\\d{1}-[0-3]?\\d{1}$";  /*** 匹配日期* * * 格式: XXXX/XX/XX* * * 范围:* * * 匹配 : 2005/04/04* * * 不匹配: 01/01/01* */public static final String DATE_SLASH_REGEXP = "^[0-9]{4}/(((0[13578]|(10|12))/(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)/(0[1-9]|[1-2][0-9]|30)))$";/*** 匹配电话* * * 格式为: 0XXX-XXXXXX(10-13位首位必须为0) 或0XXX XXXXXXX(10-13位首位必须为0) 或* * (0XXX)XXXXXXXX(11-14位首位必须为0) 或 XXXXXXXX(6-8位首位不为0) 或* XXXXXXXXXXX(11位首位不为0)* * * 匹配 : 0371-123456 或 (0371)1234567 或 (0371)12345678 或 010-123456 或* 010-12345678 或 12345678912* * * 不匹配: 1111-134355 或 0123456789* */public static final String PHONE_REGEXP = "^(?:0[0-9]{2,3}[-//s]{1}|//(0[0-9]{2,4}//))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$";/*** 匹配身份证* * 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或* XXXXXXXXXXXXXXXXXX(18位)* * 匹配 : 0123456789123* * 不匹配: 0123456* */public static final String ID_CARD_REGEXP = "^//d{10}|//d{13}|//d{15}|//d{18}$";/*** 匹配邮编代码* * 格式为: XXXXXX(6位)* * 匹配 : 012345* * 不匹配: 0123456* */public static final String ZIP_REGEXP = "^[0-9]{6}$";// 匹配邮编代码/*** 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号< 反斜杠/* 即空格,制表符,回车符等 )* * 格式为: x 或 一个一上的字符* * 匹配 : 012345* * 不匹配: 0123456 // ;,:-<>//s].+$";//*/public static final String NON_SPECIAL_CHAR_REGEXP = "^[^'/";// 匹配邮编代码/*** 匹配非负整数(正整数 + 0)*/public static final String NON_NEGATIVE_INTEGERS_REGEXP = "^//d+$";/*** 匹配不包括零的非负整数(正整数 > 0)*/public static final String NON_ZERO_NEGATIVE_INTEGERS_REGEXP = "^[1-9]+//d*$";/*** * 匹配正整数* */public static final String POSITIVE_INTEGER_REGEXP = "^[0-9]*[1-9][0-9]*$";/*** * 匹配非正整数(负整数 + 0)* */public static final String NON_POSITIVE_INTEGERS_REGEXP = "^((-//d+)|(0+))$";/*** * 匹配负整数* */public static final String NEGATIVE_INTEGERS_REGEXP = "^-[0-9]*[1-9][0-9]*$";/*** * 匹配整数* */public static final String INTEGER_REGEXP = "^-?//d+$";/*** * 匹配非负浮点数(正浮点数 + 0)* */public static final String NON_NEGATIVE_RATIONAL_NUMBERS_REGEXP = "^//d+(//.//d+)?$";/*** * 匹配正浮点数* */public static final String POSITIVE_RATIONAL_NUMBERS_REGEXP = "^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$";/*** * 匹配非正浮点数(负浮点数 + 0)* */public static final String NON_POSITIVE_RATIONAL_NUMBERS_REGEXP = "^((-//d+(//.//d+)?)|(0+(//.0+)?))$";/*** * 匹配负浮点数* */public static final String NEGATIVE_RATIONAL_NUMBERS_REGEXP = "^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$";/*** * 匹配浮点数* */public static final String RATIONAL_NUMBERS_REGEXP = "^(-?//d+)(//.//d+)?$";/*** * 匹配由26个英文字母组成的字符串* */public static final String LETTER_REGEXP = "^[A-Za-z]+$";/*** * 匹配由26个英文字母的大写组成的字符串* */public static final String UPWARD_LETTER_REGEXP = "^[A-Z]+$";/*** * 匹配由26个英文字母的小写组成的字符串* */public static final String LOWER_LETTER_REGEXP = "^[a-z]+$";/*** * 匹配由数字和26个英文字母组成的字符串* */public static final String LETTER_NUMBER_REGEXP = "^[A-Za-z0-9]+$";/*** * 匹配由数字、26个英文字母或者下划线组成的字符串* */public static final String LETTER_NUMBER_UNDERLINE_REGEXP = "^//w+$";/*** 大小写敏感的正规表达式批配* * @param source*            批配的源字符串* @param regexp*            批配的正规表达式* @return 如果源字符串符合要求返回真,否则返回假*/public static boolean isHardRegexpValidate(String source, String regexp) {try {// 用于定义正规表达式对象模板类型PatternCompiler compiler = new Perl5Compiler();// 正规表达式比较批配对象PatternMatcher matcher = new Perl5Matcher();// 实例大小大小写敏感的正规表达式模板Pattern hardPattern = compiler.compile(regexp);// 返回批配结果return matcher.contains(source, hardPattern);} catch (MalformedPatternException e) {log.warn(e);}return false;}}

工具类

字符串工具类 org.apache.commons.lang.StringUtils

<!-- https://mvnrepository.com/artifact/org.apache.commons/org.apache.commons.lang -->
<dependency><groupId>org.apache.commons</groupId><artifactId>org.apache.commons.lang</artifactId><version>2.4.0</version>
</dependency>
isEmpty(String str) 是否为空,空格字符为falseisNotEmpty(String str) 是否为非空,空格字符为trueisBlank(String str) 是否为空,空格字符为trueisNotBlank(String str) 是否为非空,空格字符为false​​​​​​​equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回falsetrim(String str)去除字符串两端的控制符,空字符串、null 返回 nullremove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回join(Object[] array)把数组中的元素连接成一个字符串返回join(Object[] array,char split) 把数组中的元素拼接成一个字符串返回,把分隔符 split 也带上removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身subString(String str,int start,int end) 从start 开始到end结束,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 "" 则返回其本身。subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身

org.springframework.beans.BeanUtils

<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.1.5.RELEASE</version>
</dependency>
1、copyPeoperties  复制属性值,从一个对象到另一个对象2、getProperty 获取对象属性值3、setProperty 设置对象属性值4、populate  根据Map给属性复制5、copyPeoperty  复制单个值,从一个对象到另一个对象。6、cloneBean 克隆

org.apache.commons.io.IOUtils

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.7</version>
</dependency>
1、closeQuietly  关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。2、toString 转换IO流、Uri、byte[]为String。3、copy IO流数据复制,从输入流写到输出流中,最大支持2GB。4、toByteArray 从输入流、URI获取byte[]。5、write 把字节、字符等写入输出流。6、toInputStream 把字符转换为输入流。7、readLines 从输入流中读取多行数据,返回List<String>8、copyLarge 同copy,支持2GB以上数据的复制。9、lineIterator 从输入流返回一个迭代器,

org.apache.commons.io.FileUtils

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.7</version>
</dependency>
1、deleteDirectory  删除文件夹2、readFileToString  以字符形式读取文件内容。3、deleteQueitly  删除文件或文件夹且不会抛出异常。4、copyFile  复制文件5、writeStringToFile 把字符写到目标文件,如果文件不存在,则创建。6、forceMkdir 强制创建文件夹,如果该文件夹父级目录不存在,则创建父级。7、write  把字符写到指定文件中8、listFiles  列举某个目录下的文件(根据过滤器)9、copyDirectory  复制文件夹10、forceDelete  强制删除文件

org.springframework.util.StringUtils

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.8</version>
</dependency>
1、hasText  检查字符串中是否包含文本2、hasLength  检测字符串是否长度大于03、isEmpty 检测字符串是否为空(若传入为对象,则判断对象是否为null)4、commaDelimitedStringToArray  逗号分隔的String转换为数组5、collectionToDelimitedString  把集合转为CSV格式字符串6、replace 替换字符串7、delimitedListToStringArray  相当于split8、uncapitalize  首字母小写9、collectionToDelimitedCommaString   把集合转为CSV格式字符串10、tokenizeToStringArray 和split基本一样,但能自动去掉空白的单词

org.apache.commons.lang.ArrayUtils

<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version>
</dependency>
1、contains  是否包含某字符串2、addAll  添加所有3、clone 克隆一个数组4、isEmpty 是否空数组5、add 向数组添加元素6、subarray  截取数组7、indexOf  查找下标8、isEquals  比较数组是否相等9、toObject  基础类型数据数组转换为对应的Object数组

org.apache.commons.collections.CollectionUtils

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version>
</dependency>
1、isEmpty 是否为空2、select 根据条件筛选集合元素3、transform  根据指定方法处理集合元素,类似List的map()。4、filter 过滤元素,雷瑟List的filter()5、find  基本和select一样6、collect  和transform 差不多一样,但是返回新数组7、forAllDo  调用每个元素的指定方法。8、isEqualCollection 判断两个集合是否一致

org.apache.commons.codec.digest.DigestUtils

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.15</version>
</dependency>
1、md5Hex MD5加密,返回32位2、sha1Hex  SHA-1加密3、sha256Hex SHA-256加密4、sha512Hex SHA-512加密5、md5 MD5加密,返回16位

org.apache.commons.io.FilenameUtils

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.7</version>
</dependency>
1、getExtension  返回文件后缀名2、getBaseName  返回文件名,不包含后缀名3、getName 返回文件全名4、concat  按命令行风格组合文件路径(详见方法注释)5、removeExtension  删除后缀名6、normalize  使路径正常化7、wildcardMatch  匹配通配符8、seperatorToUnix   路径分隔符改成unix系统格式的,即/9、getFullPath  获取文件路径,不包括文件名10、isExtension  检查文件后缀名是不是传入参数(List<String>)中的一个

org.apache.http.util.EntityUtils

<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>
1、toString 把Entity转换为字符串2、consume 确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉。3、toByteArray  把Entity转换为字节流4、consumeQuietly  和consume一样,但不抛异常5、getContentCharset   获取内容的编码

org.apache.commons.beanutils.PropertyUtils

<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version>
</dependency>
1、getProperty 获取对象属性值2、setProperty 设置对象属性值3、getPropertyDiscriptor  获取属性描述器4、isReadable 检查属性是否可访问5、copyProperties  复制属性值,从一个对象到另一个对象6、getPropertyDiscriptors  获取所有属性描述器7、isWriteable  检查属性是否可写8、getPropertyType 获取对象属性类型

opslabJutil

CSDN加速:https://codechina.csdn.net/mirrors/evil0ps/utils
源码和jar见:https://github.com/evil0ps/utils

#Java Utils#项目结构│  README.md│  utils.iml│├─.idea│├─conf│      configFTP.properties│      ftp.properties│├─Junit#测试类│  │  Test.properties│  ││  └─evilp0s│      │  CharsetTest.java│      │  DateUtilTest.java│      │  DateUtilThreadSafeTest.java│      │  EmailUtilTest.java│      │  FilePathUtilTest.java│      │  FileUtilTest.java│      │  PrintUtilTest.java│      │  ProUtilTest.java│      │  RandomUtilTest.java│      │  RegUtilTest.java│      │  SecUtilTest.java│      │  StringUtilTest.java│      │  SupportTest.java│      │  SysUtilTest.java│      │  ZIPUtilTest.java│      ││      └─algorithmImpl│              FileEncodingUtilTest.java│              FileImplTest.java│              FileTypeImplTest.java│├─lib#需要的Jar│├─out#相应的Jar│  ├─artifacts│  │  └─evilp0s_util│  │          evilp0s-util.jar│└─src└─evilp0s│  CharsetUtil.java     #字符串相关的工具类│  ClassUtil.java       #Java Class与反射相关的一些工具类│  ChinesUtil.java      #中文相关的工具类│  ConvertUtil.java     #转换相关的工具类│  DateUtil.java        #日期时间相关的工具类│  EmailUtil.java       #Email相关的工具类│  FilePathUtil.java    #文件路径相关的工具类│  FileUtil.java        #文件相关的工具类│  PrintUtil.java       #打印相关的工具类│  ProUtil.java         #属性文件相关的工具类│  RandomUtil.java      #随机操作的相关的工具类│  RegUtil.java         #正则相关的工具类│  SecUtil.java         #安全相关的工具类│  StreamUtil.java      #Stream相关的工具类│  StringUtil.java      #字符串相关的工具类│  SysUtil.java         #系统相关的工具类│  ValidUtil.java       #字符串相关的工具类│  WebUtil.java         #Web相关的工具类│  ZIPUtil.java         #zip相关的工具类│├─algorithmImpl#一些算法的实现细节│      cpDetector.java│      FileEncodingUtil.java│      FileImpl.java│      FileReadImpl.java│      FileTypeImpl.java│      StringImpl.java│└─FTP#FTP相关操作的封装FileAttr.javaFTPConstant.javaFTPFactory.javaFTPLog.javaFTPtest.javaFTPUtil.javaFTPUtilImpl.javaFTPVo.javaFunctionSet.java#APIDOC
#CharsetUtil字符串相关的工具类##常量字段static java.lang.String    GBK             中文超大字符集static java.lang.String    ISO_8859_1      ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1static java.lang.String    US_ASCII        7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块static java.lang.String    UTF_16          16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识static java.lang.String    UTF_16BE        16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序static java.lang.String    UTF_16LE        16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序static java.lang.String    UTF_8           8 位 UCS 转换格式##常量方法static java.lang.String    changeCharset(java.lang.String str, java.lang.String newCharset)字符串编码转换的实现方法static java.lang.String    changeCharset(java.lang.String str, java.lang.String oldCharset, java.lang.String newCharset)字符串编码转换的实现方法static java.lang.String    toASCII(java.lang.String str)将字符编码转换成US-ASCII码static java.lang.String    toGBK(java.lang.String str)将字符编码转换成GBK码static java.lang.String    toISO_8859_1(java.lang.String str)将字符编码转换成ISO-8859-1码static java.lang.String    toUTF_16(java.lang.String str)将字符编码转换成UTF-16码static java.lang.String    toUTF_16BE(java.lang.String str)将字符编码转换成UTF-16BE码static java.lang.String    toUTF_16LE(java.lang.String str)将字符编码转换成UTF-16LE码static java.lang.String    toUTF_8(java.lang.String str)将字符编码转换成UTF-8码#ClassUtil-Class与反射相关的一些工具类##常量方法static java.util.List<java.lang.String>    getClassName(java.lang.String packageName, boolean childPackage)static java.lang.String[]  getField(java.lang.String className)获取指定类的全部属性字段static java.lang.String[]  getMethod(java.lang.String className)获取对象的全部方法static void    getter(java.lang.Object obj, java.lang.String att)调用对象的getter方法static java.lang.String    initStr(java.lang.String old)java.lang.Class    loadClass(java.lang.String className)加载指定的类static <T> T   propertiesCopy(java.lang.Object obj, java.lang.Class<T> type)同名属性值复制 将对象obj内属性名同类型T内容有同名属性的值复制到类型T中,并返回一个类型T的对象static <T> T   propertiesCopyIgnore(java.lang.Object obj, java.lang.Class<T> type)同名属性值复制(忽略大小写) 将对象obj内属性名同类型T内容有同名属性的值复制到类型T中,并返回一个类型T的对象static <T> T   propertiesCopyIgnoreFilter(java.lang.Object obj, java.lang.Class<T> type, java.lang.String IgnoreStr)同名属性值复制(比较时忽略字符IgnoreStr的内容) 将对象obj内属性名同类型T内容有同名属性的值复制到类型T中,并返回一个类型T的对象static void    setter(java.lang.Object obj, java.lang.String att, java.lang.Object value, java.lang.Class<?> type)调用对象的setter方法
#ChinesUtil中文相关的工具类##常量方法static java.lang.String    getFirstSpell(java.lang.String chinese)获取汉字串拼音首字母,英文字符不变static java.lang.String    getFullSpell(java.lang.String chinese)获取汉字串拼音,英文字符不变static java.lang.String    getPingYin(java.lang.String inputString)将字符串中的中文转化为拼音,其他字符不变static boolean isChinese(java.lang.String strName)static boolean isChineseByName(java.lang.String str)static boolean isChineseByREG(java.lang.String str)static void    main(java.lang.String[] args)
#ConvertUtil转换相关的工具类##常量方法static int bytesToInt(byte[] bytes)static long    byteToLong(byte[] b)static short   byteToShort(byte[] b)static byte[]  intToByte(int i)static byte[]  longToByte(long number)static byte[]  shortToByte(short number)
#DateUtil日期时间相关的工具类
##常量方法static java.util.Date  calculate(java.util.Date date, int second, java.lang.String timeBurst)时间Date在时间段(例如每天的08:00-18:00)上增加或减去second秒static java.util.Date  calculate(java.lang.String date, int second, java.lang.String timeBurst)时间Date在时间段(例如每天的08:00-18:00)上增加或减去second秒static java.lang.String    Date()获取当前的日期static java.lang.String    Date(java.util.Date date)将指定的时间格式化成出返回static java.util.Date  Date(java.lang.String dateStr)将指定的字符串解析为时间类型static java.lang.String    DateTime()获取当前日期时间static java.lang.String    DateTime(java.util.Date date)将指定的时间格式化成出返回static java.util.Date  DateTime(java.lang.String datestr)将指定的字符串解析为时间类型static java.util.Date  day(java.util.Date date, int day)在指定的时间上加或减去几天static java.util.Date  day(int day)在当前时间的基础上加或减去几天static java.util.Date  hour(java.util.Date date, float hour)在制定的时间上加或减去几小时-支持浮点数static java.util.Date  hour(float hour)在当前时间的基础上加或减去几小时-支持浮点数static boolean isDate(java.lang.String date)判断字符串是否为日期字符串static java.util.Date  Minute(java.util.Date date, int minute)在制定的时间上加或减去几分钟static java.util.Date  Minute(int minute)在当前时间的基础上加或减去几分钟static java.util.Date  month(java.util.Date date, int month)在指定的时间上加或减去几月static java.util.Date  month(int month)在当前时间的基础上加或减去几月static int subDay(java.util.Date startTime, java.util.Date endTime)获取俩个时间之前的相隔的天数static int subDay(java.lang.String startTime, java.lang.String endTime)获取俩个时间之前的相隔的天数static long    subtimeBurst(java.util.Date startDate, java.util.Date endDate, java.lang.String timeBurst)返回俩个时间在时间段(例如每天的08:00-18:00)的时长-单位秒static long    subtimeBurst(java.lang.String startDate, java.lang.String endDate, java.lang.String timeBurst)返回俩个时间在时间段(例如每天的08:00-18:00)的时长-单位秒static long    Subtract(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位秒static long    Subtract(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差-单位秒static java.lang.String    SubtractDate(java.lang.String date1, java.lang.String date2)获取俩个时间的查结果用时秒表示static int SubtractDay(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位天static int SubtractDay(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差-单位天static int SubtractHour(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位小时static int SubtractHour(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差-单位小时static int SubtractMinute(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位分钟static int SubtractMinute(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差 -单位分钟static int SubtractMonth(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位月static int SubtractMonth(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差-单位月static java.lang.String    SubtractTime(java.lang.String date1, java.lang.String date2)获取俩个时间的查结果用时秒表示static int SubtractYear(java.util.Date date1, java.util.Date date2)时间date1和date2的时间差-单位年static int SubtractYear(java.lang.String date1, java.lang.String date2)时间date1和date2的时间差-单位年static java.lang.String    Time()获取当前的时间static java.lang.String    Time(java.util.Date date)讲指定的时间格式化成出返回static java.util.Date  Time(java.lang.String dateStr)将指定的字符串解析为时间类型static java.util.Date  year(java.util.Date date, int year)在指定的时间上加或减去几年static java.util.Date  year(int year)在当前时间的基础上加或减去year年
#EmailUtilEmail相关的工具类##常量方法void   doSendHtmlEmail(java.lang.String subject, java.lang.String sendHtml, java.lang.String receiveUser)发送邮件void   doSendHtmlEmail(java.lang.String subject, java.lang.String sendHtml, java.lang.String receiveUser, java.io.File attachment)发送邮件#FilePathUtil文件路径相关的工具类##常量方法static java.lang.String    commandPath(java.lang.String file)返回一个通用的文件路径static java.lang.String    getParentPath(java.lang.String file)返回相一个目录的对于本身的相对父目录#FileUtil文件相关的工具类
##常量方法static boolean appendLine(java.io.File file, java.lang.String str)在文件末尾追加一行static boolean cleanFile(java.io.File file)快速清空一个超大的文件static boolean copy(java.io.File file, java.lang.String targetFile)复制文件 通过该方式复制文件文件越大速度越是明显static boolean copy(java.lang.String resourcePath, java.lang.String targetPath)复制文件static void    copyDir(java.io.File filePath, java.lang.String targetPath)复制目录static void    copyDir(java.lang.String filePath, java.lang.String targetPath)复制目录static int countLines(java.io.File file)获取文件的行数static java.lang.String    cpdetector(java.io.File file)获取文件的编码(cpDetector)探测static boolean createFiles(java.lang.String filePaht)创建文件支持多级目录static void    createPaths(java.lang.String paths)创建多级目录static boolean deleteBigFile(java.io.File file)快速的删除超大的文件static boolean deleteDir(java.io.File file)删除一个目录static boolean deleteFile(java.io.File file)删除一个文件static java.lang.String    FileType(java.io.File file)获取文件的类型static java.lang.String    hash(java.io.File file)获取文件的Hashstatic java.util.List<java.lang.String>    Lines(java.io.File file)以列表的方式获取文件的所有行static java.util.List<java.lang.String>    Lines(java.io.File file, int lines)以列表的方式获取文件的指定的行数数据static java.util.List<java.io.File>    listFile(java.io.File path)罗列指定路径下的全部文件static java.util.List<java.io.File>    listFile(java.lang.String path)罗列指定路径下的全部文件static java.util.List<java.io.File>    listFileAll(java.io.File path)罗列指定路径下的全部文件包括文件夹static java.util.List<java.io.File>    listFileFilter(java.io.File dirPath, java.lang.String postfixs)获取指定目录下的特点文件,通过后缀名过滤static java.lang.String    MimeType(java.lang.String file)获取文件的Mime类型static java.util.Date  modifyTime(java.io.File file)获取文件最后的修改时间static java.util.List<java.io.File>    searchFile(java.io.File dirPath, java.lang.String fileName)在指定的目录下搜寻文个文件static java.util.List<java.io.File>    searchFileReg(java.io.File dirPath, java.lang.String reg)查找符合正则表达式reg的的文件static java.lang.String    SimpleEncoding(java.lang.String file)利用简单的文件头字节特征探测文件编码
#PrintUtil打印相关的工具类
##常量方法static void    print(java.util.Enumeration enums)遍历打印Enumerationstatic void    print(java.util.List<?> list)遍历打印遍历List集合static void    print(java.util.Map map)遍历打印Map集合static void    print(java.lang.String str)static void    println(java.lang.Object obj)static void    println(java.lang.String str)#ProUtil属性文件相关的工具类
##常量方法static java.lang.String    GetAllProperties(java.lang.String filePath)读取Properties的全部信息static java.lang.String    GetValueByKey(java.lang.String filePath, java.lang.String key)根据Key读取Valuestatic java.lang.String    key(java.lang.String key)static void    WriteProperties(java.lang.String filePath, java.lang.String pKey, java.lang.String pValue)写入Properties信息
#RandomUtil随机操作的相关的工具类
##常量方法static int getNotSimple(int[] param, int len)每次生成的len位数都不相同static java.lang.String    LowerString(int length)返回一个定长的随机纯大写字母字符串(只包含大小写字母)static java.lang.String    MixString(int length)返回一个定长的随机纯字母字符串(只包含大小写字母)static java.lang.String    number(int length)static java.lang.String    String(int length)返回一个定长的随机字符串(只包含大小写字母、数字)static java.lang.String    toFixdLengthString(int num, int fixdlenth)根据数字生成一个定长的字符串,长度不够前面补0static java.lang.String    toFixdLengthString(long num, int fixdlenth)根据数字生成一个定长的字符串,长度不够前面补0static java.lang.String    UpperString(int length)返回一个定长的随机纯小写字母字符串(只包含大小写字母)static java.lang.String    ZeroString(int length)生成一个定长的纯0字符串
#RegUtil正则相关的工具类
##常量方法static boolean isMatche(java.lang.String str, java.lang.String reg)判断字符串str是否符合正则表达式reg
#SecUtil安全相关的工具类
##常量方法static java.lang.String    FileMD5(java.io.File file)static java.lang.String    md5(java.lang.String password)
#StreamUtil-Stream相关的工具类
##常量方法static java.io.InputStream byte2InputStream(byte[] b)static byte[]  inputStream2Byte(java.io.InputStream inStream)static byte[]  stream2Byte(java.io.InputStream is)void   streamSaveAsFile(java.io.InputStream is, java.io.File outfile)将流另存为文件static java.lang.String    streamToString(java.io.InputStream in)Read an input stream into a string
#StringUtil字符串相关的工具类
##常量方法static int ChineseLength(java.lang.String str)获取一个字符串中中文字符的个数static int countSubStr(java.lang.String string, java.lang.String str)获取字符串str在String中出现的次数static int countSubStrReg(java.lang.String string, java.lang.String reg)获取符合reg正则表达式的字符串在String中出现的此时java.lang.String   cpDetector(java.lang.String str)获取字符串的编码static java.lang.String    formatFloat(float f, java.lang.String format)格式化一个floatstatic java.lang.String    full2Half(java.lang.String str)全角字符变半角字符static java.lang.String    GBToUnicode(java.lang.String input)GBK转换成Unicode字符集static java.lang.String    getHideEmailPrefix(java.lang.String email)隐藏邮件地址前缀。static java.lang.String    getLimitLengthString(java.lang.String str, int len, java.lang.String symbol)截取字符串 超出的字符用symbol代替static int getStringLen(java.lang.String SrcStr)取得字符串的实际长度(考虑了汉字的情况)static java.lang.String    html(java.lang.String content)HTML标签转义方法 —— java代码库static boolean isABC(java.lang.String src)判断是否纯字母组合static boolean isChinese(char c)判断是否是中文static boolean isChinese(java.lang.String strName)完整的判断中文汉字和符号static boolean isEmail(java.lang.String email)static boolean isEmpty(java.lang.String s)判断是否是空字符串 null和"" 都返回 truestatic boolean isFloatNumeric(java.lang.String src)判断是否浮点数字表示static boolean isIn(java.lang.String substring, java.lang.String[] source)判断字符串数组中是否包含某字符串元素static boolean isInteger(java.lang.String str)static boolean isMessyCode(java.lang.String strName)判断是否是乱码static boolean isNumeric(java.lang.String src)判断是否数字表示static boolean isNumericString(java.lang.String src)判断是否数字表示static java.lang.String    joinString(java.util.List array, java.lang.String symbol)把string array or list用给定的符号symbol连接成一个字符串static java.lang.String    joinString(java.lang.String[] array, java.lang.String symbol)把string array or list用给定的符号symbol连接成一个字符串static java.lang.String    left(java.lang.String input, int count)截取字符串左侧指定长度的字符串static java.lang.String    listToStringSlipStr(java.util.List list, java.lang.String slipStr)将list 用传入的分隔符组装为Stringstatic java.lang.String    middle(java.lang.String input, int index, int count)从指定位置开始截取指定长度的字符串static java.util.Map<java.lang.String,java.lang.String>    parseQuery(java.lang.String query, char split1, char split2, java.lang.String dupLink)解析字符串返回map键值对(例:a=1&b=2 => a=1,b=2)static java.util.List<java.lang.String>    parseString2ListByCustomerPattern(java.lang.String pattern, java.lang.String src)根据指定的字符把源字符串分割成一个数组static java.lang.String    repeat(java.lang.String src, int num)repeat - 通过源字符串重复生成N次组成新的字符串。static java.lang.String    replaceAll(java.lang.String s, java.lang.String sf, java.lang.String sb)存文本替换static java.lang.String    replaceBlank(java.lang.String str)页面中去除字符串中的空格、回车、换行符、制表符static java.lang.String    replaceBracketStr(java.lang.String str)全角括号转为半角static boolean requals(java.lang.String str1, java.lang.String str2)static java.lang.String    right(java.lang.String input, int count)截取字符串右侧指定长度的字符串static double  SimilarDegree(java.lang.String str1, java.lang.String str2)字符串相似度比较(速度较快)static double  SimilarityRatio(java.lang.String str1, java.lang.String str2)字符串相似度比较(速度较快)java.lang.String   SimpleEncoding(java.lang.String str)获取字符串的编码static java.lang.String    string2Unicode(java.lang.String string)static java.lang.String    subStringNotEncode(java.lang.String subject, int size)讲字符串截取到指定长度size+...的形式static java.lang.String    subStrNotEncode(java.lang.String subject, int size)截取字符,不转码static java.lang.String    trimPunct(java.lang.String str)删除所有的标点符号static java.lang.String    unicode2String(java.lang.String unicode)static java.lang.String    UnicodeToGB(java.lang.String input)Unicode转换成GBK字符集
#SysUtil系统相关的工具类
##常量字段static java.lang.String    STR_HOSTNAMEstatic java.lang.String    STR_IP
#ValidUtil字符串相关的工具类
##常量方法static boolean isValid(java.util.Collection col)判断集合的有效性static boolean isValid(java.lang.Object obj)判断一个对象是否为空static boolean isValid(java.lang.Object[] arr)判断数组是否有效static boolean isValid(java.lang.String src)判断字符串有效性
#WebUtilWeb相关的工具类
##常量方法static java.lang.String    escape(java.lang.String src)static java.lang.String    getParamValue(java.lang.String url, java.lang.String paramName)static void    main(java.lang.String[] args)static void    print(javax.servlet.http.HttpServletRequest request)static java.lang.String    removeParam(java.lang.String url, java.lang.String... paramNames)static java.lang.String    removeParam(java.lang.String url, java.lang.String paramName)static java.lang.String    setParam(java.lang.String url, java.lang.String paramName, java.lang.String paramValue)static java.lang.String    unescape(java.lang.String src)static java.lang.String    urlJoin(java.net.URL url, java.lang.String locationHeader)
#ZIPUtil-zip相关的工具类
##常量方法static void    deCompress(java.io.File file, java.lang.String dest)文档压缩static void    unCompress(java.io.File source, java.lang.String path)文档解压static void    zipFile(java.io.File inFile, java.util.zip.ZipOutputStream zos, java.lang.String dir)

参考链接:
https://blog.csdn.net/qq_22075041/article/details/77431915
https://blog.csdn.net/qq_37493556/article/details/98622575
https://blog.csdn.net/rj597306518/article/details/71480467

Java常用工具类整合(史上最全)相关推荐

  1. Java常用工具类整合

    JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...

  2. Java 常用工具类(9) : 图片上传至阿里云OSS

    阿里云OSS工具类 加强版 : https://blog.csdn.net/Lxinccode/article/details/79698259 import java.io.ByteArrayInp ...

  3. Java 验证表单工具类,史上最全

    Java 验证表彰工具类,包含各种验证如邮箱,密码,整数,等等,全的让你想不到 package com.wiker.utils; import java.util.regex.*; /**** @ve ...

  4. C#200个基础工具类,史上最全快收藏下载

    场景 包含工具类部分如下: CSV文件转换;DataTable转实体;Excel操作类;FTP操作类;Html操作类;IP辅助类;JSON操作;JS操作;URL的操作类;XML操作类;处理多媒体的公共 ...

  5. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

  6. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  7. Java常用工具类JsonUtils

    Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...

  8. JAVA常用工具类(实用高效)

    JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...

  9. Java NIO (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈 奉上以下珍贵的学习资源: 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 + 大厂必备 +涨薪 ...

最新文章

  1. 开发者关心的十个数据库技术问题
  2. opengl里面的矩阵栈
  3. 系统优化方法与智能优化算法
  4. python如何使用文件_Python的文件操作
  5. 网上看到的一道题,分享一下
  6. linux 父子进程 资源_linux 父子进程 资源_实验4 Linux父子进程同步
  7. js中将有层级关系的一维数据转换为父子级关系的二维数据、菜单权限三级层级数据实现(树形结构数据)
  8. New Chapter
  9. copy 收到_离散内存与zero_copy的一些思考
  10. 2021-2025年中国催产药行业市场供需与战略研究报告
  11. 【万里征程——Windows App开发】数据绑定——简单示例、更改通知、数据转换...
  12. AlexNet做文档布局分析 (版面分析)数据集
  13. python中format函数用法简书_Python format 格式化函数
  14. docker兼容的linux内核,CentOS 6.5上安装Docker与Docker对中文字符集的支持
  15. cookie分号后面没有值_Cookie的属性(cookie的设置、获取和删除)
  16. C语言-简介及IDE介绍
  17. 计算机视觉 - python实现求解homography矩阵
  18. u盘怎样修复服务器系统,高手教你怎么修复U盘的MBR
  19. EOJ Monthly 2017.12 B. 在哈尔滨的寒风中(规律)
  20. Mysql 事务的隔离性(隔离级别)

热门文章

  1. Windows下Qt使用htons,htonl,ntohs,ntohl
  2. 旅游网站大数据分析 - 数据清洗
  3. javaFX资源加载
  4. 用python 记账小程序_python 实例8 日常记账本小程序
  5. 本地推送到远程仓库出的问题解决[remote rejected] master - master (hook declined) error: failed to push some refs to
  6. 3.3带误差线的柱状图
  7. 如何在 Raspberry Pi 上使用 Brother 打印机
  8. oracle列转行求和,Oracle行转列和列转行
  9. go语言解析 map[string]interface{} 数据格式
  10. “COMSOL 多物理场/FDTD 时域有限差分/ RSoft 光电器件仿真设计” 系列专题