整理收集的一些常用java工具类

  1. 云栖社区>
  2. 博客>
  3. 正文

整理收集的一些常用java工具类

一个小迷糊 2018-05-21 14:58:29 浏览5305
展开阅读全文

1.json转换工具

[java] view plain copy
  1. package com.taotao.utils;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.fasterxml.jackson.core.JsonProcessingException;  
  6. import com.fasterxml.jackson.databind.JavaType;  
  7. import com.fasterxml.jackson.databind.JsonNode;  
  8. import com.fasterxml.jackson.databind.ObjectMapper;  
  9.   
  10. /** 
  11.  * json转换工具类 
  12.  */  
  13. public class JsonUtils {  
  14.   
  15.     // 定义jackson对象  
  16.     private static final ObjectMapper MAPPER = new ObjectMapper();  
  17.   
  18.     /** 
  19.      * 将对象转换成json字符串。 
  20.      * <p>Title: pojoToJson</p> 
  21.      * <p>Description: </p> 
  22.      * @param data 
  23.      * @return 
  24.      */  
  25.     public static String objectToJson(Object data) {  
  26.         try {  
  27.             String string = MAPPER.writeValueAsString(data);  
  28.             return string;  
  29.         } catch (JsonProcessingException e) {  
  30.             e.printStackTrace();  
  31.         }  
  32.         return null;  
  33.     }  
  34.       
  35.     /** 
  36.      * 将json结果集转化为对象 
  37.      *  
  38.      * @param jsonData json数据 
  39.      * @param clazz 对象中的object类型 
  40.      * @return 
  41.      */  
  42.     public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {  
  43.         try {  
  44.             T t = MAPPER.readValue(jsonData, beanType);  
  45.             return t;  
  46.         } catch (Exception e) {  
  47.             e.printStackTrace();  
  48.         }  
  49.         return null;  
  50.     }  
  51.       
  52.     /** 
  53.      * 将json数据转换成pojo对象list 
  54.      * <p>Title: jsonToList</p> 
  55.      * <p>Description: </p> 
  56.      * @param jsonData 
  57.      * @param beanType 
  58.      * @return 
  59.      */  
  60.     public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {  
  61.         JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);  
  62.         try {  
  63.             List<T> list = MAPPER.readValue(jsonData, javaType);  
  64.             return list;  
  65.         } catch (Exception e) {  
  66.             e.printStackTrace();  
  67.         }  
  68.           
  69.         return null;  
  70.     }  
  71.       
  72. }  

2.cookie的读写

[java] view plain copy
  1. package com.taotao.common.utils;  
  2.   
  3. import java.io.UnsupportedEncodingException;  
  4. import java.net.URLDecoder;  
  5. import java.net.URLEncoder;  
  6.   
  7. import javax.servlet.http.Cookie;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11.   
  12. /** 
  13.  *  
  14.  * Cookie 工具类 
  15.  * 
  16.  */  
  17. public final class CookieUtils {  
  18.   
  19.     /** 
  20.      * 得到Cookie的值, 不编码 
  21.      *  
  22.      * @param request 
  23.      * @param cookieName 
  24.      * @return 
  25.      */  
  26.     public static String getCookieValue(HttpServletRequest request, String cookieName) {  
  27.         return getCookieValue(request, cookieName, false);  
  28.     }  
  29.   
  30.     /** 
  31.      * 得到Cookie的值, 
  32.      *  
  33.      * @param request 
  34.      * @param cookieName 
  35.      * @return 
  36.      */  
  37.     public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) {  
  38.         Cookie[] cookieList = request.getCookies();  
  39.         if (cookieList == null || cookieName == null) {  
  40.             return null;  
  41.         }  
  42.         String retValue = null;  
  43.         try {  
  44.             for (int i = 0; i < cookieList.length; i++) {  
  45.                 if (cookieList[i].getName().equals(cookieName)) {  
  46.                     if (isDecoder) {  
  47.                         retValue = URLDecoder.decode(cookieList[i].getValue(), "UTF-8");  
  48.                     } else {  
  49.                         retValue = cookieList[i].getValue();  
  50.                     }  
  51.                     break;  
  52.                 }  
  53.             }  
  54.         } catch (UnsupportedEncodingException e) {  
  55.             e.printStackTrace();  
  56.         }  
  57.         return retValue;  
  58.     }  
  59.   
  60.     /** 
  61.      * 得到Cookie的值, 
  62.      *  
  63.      * @param request 
  64.      * @param cookieName 
  65.      * @return 
  66.      */  
  67.     public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) {  
  68.         Cookie[] cookieList = request.getCookies();  
  69.         if (cookieList == null || cookieName == null) {  
  70.             return null;  
  71.         }  
  72.         String retValue = null;  
  73.         try {  
  74.             for (int i = 0; i < cookieList.length; i++) {  
  75.                 if (cookieList[i].getName().equals(cookieName)) {  
  76.                     retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);  
  77.                     break;  
  78.                 }  
  79.             }  
  80.         } catch (UnsupportedEncodingException e) {  
  81.              e.printStackTrace();  
  82.         }  
  83.         return retValue;  
  84.     }  
  85.   
  86.     /** 
  87.      * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码 
  88.      */  
  89.     public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
  90.             String cookieValue) {  
  91.         setCookie(request, response, cookieName, cookieValue, -1);  
  92.     }  
  93.   
  94.     /** 
  95.      * 设置Cookie的值 在指定时间内生效,但不编码 
  96.      */  
  97.     public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
  98.             String cookieValue, int cookieMaxage) {  
  99.         setCookie(request, response, cookieName, cookieValue, cookieMaxage, false);  
  100.     }  
  101.   
  102.     /** 
  103.      * 设置Cookie的值 不设置生效时间,但编码 
  104.      */  
  105.     public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
  106.             String cookieValue, boolean isEncode) {  
  107.         setCookie(request, response, cookieName, cookieValue, -1, isEncode);  
  108.     }  
  109.   
  110.     /** 
  111.      * 设置Cookie的值 在指定时间内生效, 编码参数 
  112.      */  
  113.     public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
  114.             String cookieValue, int cookieMaxage, boolean isEncode) {  
  115.         doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode);  
  116.     }  
  117.   
  118.     /** 
  119.      * 设置Cookie的值 在指定时间内生效, 编码参数(指定编码) 
  120.      */  
  121.     public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
  122.             String cookieValue, int cookieMaxage, String encodeString) {  
  123.         doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString);  
  124.     }  
  125.   
  126.     /** 
  127.      * 删除Cookie带cookie域名 
  128.      */  
  129.     public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,  
  130.             String cookieName) {  
  131.         doSetCookie(request, response, cookieName, "", -1false);  
  132.     }  
  133.   
  134.     /** 
  135.      * 设置Cookie的值,并使其在指定时间内生效 
  136.      *  
  137.      * @param cookieMaxage cookie生效的最大秒数 
  138.      */  
  139.     private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,  
  140.             String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) {  
  141.         try {  
  142.             if (cookieValue == null) {  
  143.                 cookieValue = "";  
  144.             } else if (isEncode) {  
  145.                 cookieValue = URLEncoder.encode(cookieValue, "utf-8");  
  146.             }  
  147.             Cookie cookie = new Cookie(cookieName, cookieValue);  
  148.             if (cookieMaxage > 0)  
  149.                 cookie.setMaxAge(cookieMaxage);  
  150.             if (null != request) {// 设置域名的cookie  
  151.                 String domainName = getDomainName(request);  
  152.                 System.out.println(domainName);  
  153.                 if (!"localhost".equals(domainName)) {  
  154.                     cookie.setDomain(domainName);  
  155.                 }  
  156.             }  
  157.             cookie.setPath("/");  
  158.             response.addCookie(cookie);  
  159.         } catch (Exception e) {  
  160.              e.printStackTrace();  
  161.         }  
  162.     }  
  163.   
  164.     /** 
  165.      * 设置Cookie的值,并使其在指定时间内生效 
  166.      *  
  167.      * @param cookieMaxage cookie生效的最大秒数 
  168.      */  
  169.     private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,  
  170.             String cookieName, String cookieValue, int cookieMaxage, String encodeString) {  
  171.         try {  
  172.             if (cookieValue == null) {  
  173.                 cookieValue = "";  
  174.             } else {  
  175.                 cookieValue = URLEncoder.encode(cookieValue, encodeString);  
  176.             }  
  177.             Cookie cookie = new Cookie(cookieName, cookieValue);  
  178.             if (cookieMaxage > 0)  
  179.                 cookie.setMaxAge(cookieMaxage);  
  180.             if (null != request) {// 设置域名的cookie  
  181.                 String domainName = getDomainName(request);  
  182.                 System.out.println(domainName);  
  183.                 if (!"localhost".equals(domainName)) {  
  184.                     cookie.setDomain(domainName);  
  185.                 }  
  186.             }  
  187.             cookie.setPath("/");  
  188.             response.addCookie(cookie);  
  189.         } catch (Exception e) {  
  190.              e.printStackTrace();  
  191.         }  
  192.     }  
  193.   
  194.     /** 
  195.      * 得到cookie的域名 
  196.      */  
  197.     private static final String getDomainName(HttpServletRequest request) {  
  198.         String domainName = null;  
  199.   
  200.         String serverName = request.getRequestURL().toString();  
  201.         if (serverName == null || serverName.equals("")) {  
  202.             domainName = "";  
  203.         } else {  
  204.             serverName = serverName.toLowerCase();  
  205.             serverName = serverName.substring(7);  
  206.             final int end = serverName.indexOf("/");  
  207.             serverName = serverName.substring(0, end);  
  208.             final String[] domains = serverName.split("\\.");  
  209.             int len = domains.length;  
  210.             if (len > 3) {  
  211.                 // www.xxx.com.cn  
  212.                 domainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1];  
  213.             } else if (len <= 3 && len > 1) {  
  214.                 // xxx.com or xxx.cn  
  215.                 domainName = "." + domains[len - 2] + "." + domains[len - 1];  
  216.             } else {  
  217.                 domainName = serverName;  
  218.             }  
  219.         }  
  220.   
  221.         if (domainName != null && domainName.indexOf(":") > 0) {  
  222.             String[] ary = domainName.split("\\:");  
  223.             domainName = ary[0];  
  224.         }  
  225.         return domainName;  
  226.     }  
  227.   
  228. }  

3.HttpClientUtil    相关包及文档下载

[java] view plain copy
  1. package com.taotao.utils;  
  2.   
  3. import java.io.IOException;  
  4. import java.net.URI;  
  5. import java.util.ArrayList;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. import org.apache.http.NameValuePair;  
  10. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  11. import org.apache.http.client.methods.CloseableHttpResponse;  
  12. import org.apache.http.client.methods.HttpGet;  
  13. import org.apache.http.client.methods.HttpPost;  
  14. import org.apache.http.client.utils.URIBuilder;  
  15. import org.apache.http.entity.ContentType;  
  16. import org.apache.http.entity.StringEntity;  
  17. import org.apache.http.impl.client.CloseableHttpClient;  
  18. import org.apache.http.impl.client.HttpClients;  
  19. import org.apache.http.message.BasicNameValuePair;  
  20. import org.apache.http.util.EntityUtils;  
  21.   
  22. public class HttpClientUtil {  
  23.   
  24.     public static String doGet(String url, Map<String, String> param) {  
  25.   
  26.         // 创建Httpclient对象  
  27.         CloseableHttpClient httpclient = HttpClients.createDefault();  
  28.   
  29.         String resultString = "";  
  30.         CloseableHttpResponse response = null;  
  31.         try {  
  32.             // 创建uri  
  33.             URIBuilder builder = new URIBuilder(url);  
  34.             if (param != null) {  
  35.                 for (String key : param.keySet()) {  
  36.                     builder.addParameter(key, param.get(key));  
  37.                 }  
  38.             }  
  39.             URI uri = builder.build();  
  40.   
  41.             // 创建http GET请求  
  42.             HttpGet httpGet = new HttpGet(uri);  
  43.   
  44.             // 执行请求  
  45.             response = httpclient.execute(httpGet);  
  46.             // 判断返回状态是否为200  
  47.             if (response.getStatusLine().getStatusCode() == 200) {  
  48.                 resultString = EntityUtils.toString(response.getEntity(), "UTF-8");  
  49.             }  
  50.         } catch (Exception e) {  
  51.             e.printStackTrace();  
  52.         } finally {  
  53.             try {  
  54.                 if (response != null) {  
  55.                     response.close();  
  56.                 }  
  57.                 httpclient.close();  
  58.             } catch (IOException e) {  
  59.                 e.printStackTrace();  
  60.             }  
  61.         }  
  62.         return resultString;  
  63.     }  
  64.   
  65.     public static String doGet(String url) {  
  66.         return doGet(url, null);  
  67.     }  
  68.   
  69.     public static String doPost(String url, Map<String, String> param) {  
  70.         // 创建Httpclient对象  
  71.         CloseableHttpClient httpClient = HttpClients.createDefault();  
  72.         CloseableHttpResponse response = null;  
  73.         String resultString = "";  
  74.         try {  
  75.             // 创建Http Post请求  
  76.             HttpPost httpPost = new HttpPost(url);  
  77.             // 创建参数列表  
  78.             if (param != null) {  
  79.                 List<NameValuePair> paramList = new ArrayList<>();  
  80.                 for (String key : param.keySet()) {  
  81.                     paramList.add(new BasicNameValuePair(key, param.get(key)));  
  82.                 }  
  83.                 // 模拟表单  
  84.                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);  
  85.                 httpPost.setEntity(entity);  
  86.             }  
  87.             // 执行http请求  
  88.             response = httpClient.execute(httpPost);  
  89.             resultString = EntityUtils.toString(response.getEntity(), "utf-8");  
  90.         } catch (Exception e) {  
  91.             e.printStackTrace();  
  92.         } finally {  
  93.             try {  
  94.                 response.close();  
  95.             } catch (IOException e) {  
  96.                 // TODO Auto-generated catch block  
  97.                 e.printStackTrace();  
  98.             }  
  99.         }  
  100.   
  101.         return resultString;  
  102.     }  
  103.   
  104.     public static String doPost(String url) {  
  105.         return doPost(url, null);  
  106.     }  
  107.       
  108.     public static String doPostJson(String url, String json) {  
  109.         // 创建Httpclient对象  
  110.         CloseableHttpClient httpClient = HttpClients.createDefault();  
  111.         CloseableHttpResponse response = null;  
  112.         String resultString = "";  
  113.         try {  
  114.             // 创建Http Post请求  
  115.             HttpPost httpPost = new HttpPost(url);  
  116.             // 创建请求内容  
  117.             StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);  
  118.             httpPost.setEntity(entity);  
  119.             // 执行http请求  
  120.             response = httpClient.execute(httpPost);  
  121.             resultString = EntityUtils.toString(response.getEntity(), "utf-8");  
  122.         } catch (Exception e) {  
  123.             e.printStackTrace();  
  124.         } finally {  
  125.             try {  
  126.                 response.close();  
  127.             } catch (IOException e) {  
  128.                 // TODO Auto-generated catch block  
  129.                 e.printStackTrace();  
  130.             }  
  131.         }  
  132.   
  133.         return resultString;  
  134.     }  
  135. }  

4.FastDFSClient工具类   相关包以及文档下载

[java] view plain copy
  1. package cn.itcast.fastdfs.cliennt;  
  2.   
  3. import org.csource.common.NameValuePair;  
  4. import org.csource.fastdfs.ClientGlobal;  
  5. import org.csource.fastdfs.StorageClient1;  
  6. import org.csource.fastdfs.StorageServer;  
  7. import org.csource.fastdfs.TrackerClient;  
  8. import org.csource.fastdfs.TrackerServer;  
  9.   
  10. public class FastDFSClient {  
  11.   
  12.     private TrackerClient trackerClient = null;  
  13.     private TrackerServer trackerServer = null;  
  14.     private StorageServer storageServer = null;  
  15.     private StorageClient1 storageClient = null;  
  16.       
  17.     public FastDFSClient(String conf) throws Exception {  
  18.         if (conf.contains("classpath:")) {  
  19.             conf = conf.replace("classpath:"this.getClass().getResource("/").getPath());  
  20.         }  
  21.         ClientGlobal.init(conf);  
  22.         trackerClient = new TrackerClient();  
  23.         trackerServer = trackerClient.getConnection();  
  24.         storageServer = null;  
  25.         storageClient = new StorageClient1(trackerServer, storageServer);  
  26.     }  
  27.       
  28.     /** 
  29.      * 上传文件方法 
  30.      * <p>Title: uploadFile</p> 
  31.      * <p>Description: </p> 
  32.      * @param fileName 文件全路径 
  33.      * @param extName 文件扩展名,不包含(.) 
  34.      * @param metas 文件扩展信息 
  35.      * @return 
  36.      * @throws Exception 
  37.      */  
  38.     public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {  
  39.         String result = storageClient.upload_file1(fileName, extName, metas);  
  40.         return result;  
  41.     }  
  42.       
  43.     public String uploadFile(String fileName) throws Exception {  
  44.         return uploadFile(fileName, nullnull);  
  45.     }  
  46.       
  47.     public String uploadFile(String fileName, String extName) throws Exception {  
  48.         return uploadFile(fileName, extName, null);  
  49.     }  
  50.       
  51.     /** 
  52.      * 上传文件方法 
  53.      * <p>Title: uploadFile</p> 
  54.      * <p>Description: </p> 
  55.      * @param fileContent 文件的内容,字节数组 
  56.      * @param extName 文件扩展名 
  57.      * @param metas 文件扩展信息 
  58.      * @return 
  59.      * @throws Exception 
  60.      */  
  61.     public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {  
  62.           
  63.         String result = storageClient.upload_file1(fileContent, extName, metas);  
  64.         return result;  
  65.     }  
  66.       
  67.     public String uploadFile(byte[] fileContent) throws Exception {  
  68.         return uploadFile(fileContent, nullnull);  
  69.     }  
  70.       
  71.     public String uploadFile(byte[] fileContent, String extName) throws Exception {  
  72.         return uploadFile(fileContent, extName, null);  
  73.     }  
  74. }  

[java] view plain copy
  1. <span style="font-size:14px;font-weight:normal;">public class FastDFSTest {  
  2.   
  3.     @Test  
  4.     public void testFileUpload() throws Exception {  
  5.         // 1、加载配置文件,配置文件中的内容就是tracker服务的地址。  
  6.         ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");  
  7.         // 2、创建一个TrackerClient对象。直接new一个。  
  8.         TrackerClient trackerClient = new TrackerClient();  
  9.         // 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。  
  10.         TrackerServer trackerServer = trackerClient.getConnection();  
  11.         // 4、创建一个StorageServer的引用,值为null  
  12.         StorageServer storageServer = null;  
  13.         // 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用  
  14.         StorageClient storageClient = new StorageClient(trackerServer, storageServer);  
  15.         // 6、使用StorageClient对象上传图片。  
  16.         //扩展名不带“.”  
  17.         String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg""jpg"null);  
  18.         // 7、返回数组。包含组名和图片的路径。  
  19.         for (String string : strings) {  
  20.             System.out.println(string);  
  21.         }  
  22.     }  
  23. }</span>  


5.获取异常的堆栈信息

[java] view plain copy
  1. package com.taotao.utils;  
  2.   
  3. import java.io.PrintWriter;  
  4. import java.io.StringWriter;  
  5.   
  6. public class ExceptionUtil {  
  7.   
  8.     /** 
  9.      * 获取异常的堆栈信息 
  10.      *  
  11.      * @param t 
  12.      * @return 
  13.      */  
  14.     public static String getStackTrace(Throwable t) {  
  15.         StringWriter sw = new StringWriter();  
  16.         PrintWriter pw = new PrintWriter(sw);  
  17.   
  18.         try {  
  19.             t.printStackTrace(pw);  
  20.             return sw.toString();  
  21.         } finally {  
  22.             pw.close();  
  23.         }  
  24.     }  
  25. }  


6.easyUIDataGrid对象返回值

[java] view plain copy
  1. package com.taotao.result;  
  2.   
  3. import java.util.List;  
  4.   
  5. /** 
  6.  * easyUIDataGrid对象返回值 
  7.  * <p>Title: EasyUIResult</p> 
  8.  * <p>Description: </p> 
  9.  * <p>Company: www.itcast.com</p>  
  10.  * @author  入云龙 
  11.  * @date    2015年7月21日下午4:12:52 
  12.  * @version 1.0 
  13.  */  
  14. public class EasyUIResult {  
  15.   
  16.     private Integer total;  
  17.       
  18.     private List<?> rows;  
  19.       
  20.     public EasyUIResult(Integer total, List<?> rows) {  
  21.         this.total = total;  
  22.         this.rows = rows;  
  23.     }  
  24.       
  25.     public EasyUIResult(long total, List<?> rows) {  
  26.         this.total = (int) total;  
  27.         this.rows = rows;  
  28.     }  
  29.   
  30.     public Integer getTotal() {  
  31.         return total;  
  32.     }  
  33.     public void setTotal(Integer total) {  
  34.         this.total = total;  
  35.     }  
  36.     public List<?> getRows() {  
  37.         return rows;  
  38.     }  
  39.     public void setRows(List<?> rows) {  
  40.         this.rows = rows;  
  41.     }  
  42.       
  43.       
  44. }  

7.ftp上传下载工具类

[java] view plain copy
  1. package com.taotao.utils;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileNotFoundException;  
  6. import java.io.FileOutputStream;  
  7. import java.io.IOException;  
  8. import java.io.InputStream;  
  9. import java.io.OutputStream;  
  10.   
  11. import org.apache.commons.net.ftp.FTP;  
  12. import org.apache.commons.net.ftp.FTPClient;  
  13. import org.apache.commons.net.ftp.FTPFile;  
  14. import org.apache.commons.net.ftp.FTPReply;  
  15.   
  16. /** 
  17.  * ftp上传下载工具类 
  18.  * <p>Title: FtpUtil</p> 
  19.  * <p>Description: </p> 
  20.  * <p>Company: www.itcast.com</p>  
  21.  * @author  入云龙 
  22.  * @date    2015年7月29日下午8:11:51 
  23.  * @version 1.0 
  24.  */  
  25. public class FtpUtil {  
  26.   
  27.     /**  
  28.      * Description: 向FTP服务器上传文件  
  29.      * @param host FTP服务器hostname  
  30.      * @param port FTP服务器端口  
  31.      * @param username FTP登录账号  
  32.      * @param password FTP登录密码  
  33.      * @param basePath FTP服务器基础目录 
  34.      * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath 
  35.      * @param filename 上传到FTP服务器上的文件名  
  36.      * @param input 输入流  
  37.      * @return 成功返回true,否则返回false  
  38.      */    
  39.     public static boolean uploadFile(String host, int port, String username, String password, String basePath,  
  40.             String filePath, String filename, InputStream input) {  
  41.         boolean result = false;  
  42.         FTPClient ftp = new FTPClient();  
  43.         try {  
  44.             int reply;  
  45.             ftp.connect(host, port);// 连接FTP服务器  
  46.             // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  
  47.             ftp.login(username, password);// 登录  
  48.             reply = ftp.getReplyCode();  
  49.             if (!FTPReply.isPositiveCompletion(reply)) {  
  50.                 ftp.disconnect();  
  51.                 return result;  
  52.             }  
  53.             //切换到上传目录  
  54.             if (!ftp.changeWorkingDirectory(basePath+filePath)) {  
  55.                 //如果目录不存在创建目录  
  56.                 String[] dirs = filePath.split("/");  
  57.                 String tempPath = basePath;  
  58.                 for (String dir : dirs) {  
  59.                     if (null == dir || "".equals(dir)) continue;  
  60.                     tempPath += "/" + dir;  
  61.                     if (!ftp.changeWorkingDirectory(tempPath)) {  
  62.                         if (!ftp.makeDirectory(tempPath)) {  
  63.                             return result;  
  64.                         } else {  
  65.                             ftp.changeWorkingDirectory(tempPath);  
  66.                         }  
  67.                     }  
  68.                 }  
  69.             }  
  70.             //设置上传文件的类型为二进制类型  
  71.             ftp.setFileType(FTP.BINARY_FILE_TYPE);  
  72.             //上传文件  
  73.             if (!ftp.storeFile(filename, input)) {  
  74.                 return result;  
  75.             }  
  76.             input.close();  
  77.             ftp.logout();  
  78.             result = true;  
  79.         } catch (IOException e) {  
  80.             e.printStackTrace();  
  81.         } finally {  
  82.             if (ftp.isConnected()) {  
  83.                 try {  
  84.                     ftp.disconnect();  
  85.                 } catch (IOException ioe) {  
  86.                 }  
  87.             }  
  88.         }  
  89.         return result;  
  90.     }  
  91.       
  92.     /**  
  93.      * Description: 从FTP服务器下载文件  
  94.      * @param host FTP服务器hostname  
  95.      * @param port FTP服务器端口  
  96.      * @param username FTP登录账号  
  97.      * @param password FTP登录密码  
  98.      * @param remotePath FTP服务器上的相对路径  
  99.      * @param fileName 要下载的文件名  
  100.      * @param localPath 下载后保存到本地的路径  
  101.      * @return  
  102.      */    
  103.     public static boolean downloadFile(String host, int port, String username, String password, String remotePath,  
  104.             String fileName, String localPath) {  
  105.         boolean result = false;  
  106.         FTPClient ftp = new FTPClient();  
  107.         try {  
  108.             int reply;  
  109.             ftp.connect(host, port);  
  110.             // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  
  111.             ftp.login(username, password);// 登录  
  112.             reply = ftp.getReplyCode();  
  113.             if (!FTPReply.isPositiveCompletion(reply)) {  
  114.                 ftp.disconnect();  
  115.                 return result;  
  116.             }  
  117.             ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录  
  118.             FTPFile[] fs = ftp.listFiles();  
  119.             for (FTPFile ff : fs) {  
  120.                 if (ff.getName().equals(fileName)) {  
  121.                     File localFile = new File(localPath + "/" + ff.getName());  
  122.   
  123.                     OutputStream is = new FileOutputStream(localFile);  
  124.                     ftp.retrieveFile(ff.getName(), is);  
  125.                     is.close();  
  126.                 }  
  127.             }  
  128.   
  129.             ftp.logout();  
  130.             result = true;  
  131.         } catch (IOException e) {  
  132.             e.printStackTrace();  
  133.         } finally {  
  134.             if (ftp.isConnected()) {  
  135.                 try {  
  136.                     ftp.disconnect();  
  137.                 } catch (IOException ioe) {  
  138.                 }  
  139.             }  
  140.         }  
  141.         return result;  
  142.     }  
  143.       
  144.     public static void main(String[] args) {  
  145.         try {    
  146.             FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg"));    
  147.             boolean flag = uploadFile("192.168.25.133"21"ftpuser""ftpuser""/home/ftpuser/www/images","/2015/01/21""gaigeming.jpg", in);    
  148.             System.out.println(flag);    
  149.         } catch (FileNotFoundException e) {    
  150.             e.printStackTrace();    
  151.         }    
  152.     }  
  153. }  

8.各种id生成策略

[java] view plain copy
  1. package com.taotao.utils;  
  2.   
  3. import java.util.Random;  
  4.   
  5. /** 
  6.  * 各种id生成策略 
  7.  * <p>Title: IDUtils</p> 
  8.  * <p>Description: </p> 
  9.  * @date    2015年7月22日下午2:32:10 
  10.  * @version 1.0 
  11.  */  
  12. public class IDUtils {  
  13.   
  14.     /** 
  15.      * 图片名生成 
  16.      */  
  17.     public static String genImageName() {  
  18.         //取当前时间的长整形值包含毫秒  
  19.         long millis = System.currentTimeMillis();  
  20.         //long millis = System.nanoTime();  
  21.         //加上三位随机数  
  22.         Random random = new Random();  
  23.         int end3 = random.nextInt(999);  
  24.         //如果不足三位前面补0  
  25.         String str = millis + String.format("%03d", end3);  
  26.           
  27.         return str;  
  28.     }  
  29.       
  30.     /** 
  31.      * 商品id生成 
  32.      */  
  33.     public static long genItemId() {  
  34.         //取当前时间的长整形值包含毫秒  
  35.         long millis = System.currentTimeMillis();  
  36.         //long millis = System.nanoTime();  
  37.         //加上两位随机数  
  38.         Random random = new Random();  
  39.         int end2 = random.nextInt(99);  
  40.         //如果不足两位前面补0  
  41.         String str = millis + String.format("%02d", end2);  
  42.         long id = new Long(str);  
  43.         return id;  
  44.     }  
  45.       
  46.     public static void main(String[] args) {  
  47.         for(int i=0;i< 100;i++)  
  48.         System.out.println(genItemId());  
  49.     }  
  50. }  

9.上传图片返回值

[java] view plain copy
  1. package com.result;  
  2. /** 
  3.  * 上传图片返回值 
  4.  * <p>Title: PictureResult</p> 
  5.  * <p>Description: </p> 
  6.  * <p>Company: www.itcast.com</p>  
  7.  * @author  入云龙 
  8.  * @date    2015年7月22日下午2:09:02 
  9.  * @version 1.0 
  10.  */  
  11. public class PictureResult {  
  12.   
  13.     /** 
  14.      * 上传图片返回值,成功:0 失败:1     
  15.      */  
  16.     private Integer error;  
  17.     /** 
  18.      * 回显图片使用的url 
  19.      */  
  20.     private String url;  
  21.     /** 
  22.      * 错误时的错误消息 
  23.      */  
  24.     private String message;  
  25.     public PictureResult(Integer state, String url) {  
  26.         this.url = url;  
  27.         this.error = state;  
  28.     }  
  29.     public PictureResult(Integer state, String url, String errorMessage) {  
  30.         this.url = url;  
  31.         this.error = state;  
  32.         this.message = errorMessage;  
  33.     }  
  34.     public Integer getError() {  
  35.         return error;  
  36.     }  
  37.     public void setError(Integer error) {  
  38.         this.error = error;  
  39.     }  
  40.     public String getUrl() {  
  41.         return url;  
  42.     }  
  43.     public void setUrl(String url) {  
  44.         this.url = url;  
  45.     }  
  46.     public String getMessage() {  
  47.         return message;  
  48.     }  
  49.     public void setMessage(String message) {  
  50.         this.message = message;  
  51.     }  
  52.       
  53. }  

10.自定义响应结构

[java] view plain copy
  1. package com.result;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.fasterxml.jackson.databind.JsonNode;  
  6. import com.fasterxml.jackson.databind.ObjectMapper;  
  7.   
  8. /** 
  9.  * 自定义响应结构 
  10.  */  
  11. public class TaotaoResult {  
  12.   
  13.     // 定义jackson对象  
  14.     private static final ObjectMapper MAPPER = new ObjectMapper();  
  15.   
  16.     // 响应业务状态  
  17.     private Integer status;  
  18.   
  19.     // 响应消息  
  20.     private String msg;  
  21.   
  22.     // 响应中的数据  
  23.     private Object data;  
  24.   
  25.     public static TaotaoResult build(Integer status, String msg, Object data) {  
  26.         return new TaotaoResult(status, msg, data);  
  27.     }  
  28.   
  29.     public static TaotaoResult ok(Object data) {  
  30.         return new TaotaoResult(data);  
  31.     }  
  32.   
  33.     public static TaotaoResult ok() {  
  34.         return new TaotaoResult(null);  
  35.     }  
  36.   
  37.     public TaotaoResult() {  
  38.   
  39.     }  
  40.   
  41.     public static TaotaoResult build(Integer status, String msg) {  
  42.         return new TaotaoResult(status, msg, null);  
  43.     }  
  44.   
  45.     public TaotaoResult(Integer status, String msg, Object data) {  
  46.         this.status = status;  
  47.         this.msg = msg;  
  48.         this.data = data;  
  49.     }  
  50.   
  51.     public TaotaoResult(Object data) {  
  52.         this.status = 200;  
  53.         this.msg = "OK";  
  54.         this.data = data;  
  55.     }  
  56.   
  57. //    public Boolean isOK() {  
  58. //        return this.status == 200;  
  59. //    }  
  60.   
  61.     public Integer getStatus() {  
  62.         return status;  
  63.     }  
  64.   
  65.     public void setStatus(Integer status) {  
  66.         this.status = status;  
  67.     }  
  68.   
  69.     public String getMsg() {  
  70.         return msg;  
  71.     }  
  72.   
  73.     public void setMsg(String msg) {  
  74.         this.msg = msg;  
  75.     }  
  76.   
  77.     public Object getData() {  
  78.         return data;  
  79.     }  
  80.   
  81.     public void setData(Object data) {  
  82.         this.data = data;  
  83.     }  
  84.   
  85.     /** 
  86.      * 将json结果集转化为TaotaoResult对象 
  87.      *  
  88.      * @param jsonData json数据 
  89.      * @param clazz TaotaoResult中的object类型 
  90.      * @return 
  91.      */  
  92.     public static TaotaoResult formatToPojo(String jsonData, Class<?> clazz) {  
  93.         try {  
  94.             if (clazz == null) {  
  95.                 return MAPPER.readValue(jsonData, TaotaoResult.class);  
  96.             }  
  97.             JsonNode jsonNode = MAPPER.readTree(jsonData);  
  98.             JsonNode data = jsonNode.get("data");  
  99.             Object obj = null;  
  100.             if (clazz != null) {  
  101.                 if (data.isObject()) {  
  102.                     obj = MAPPER.readValue(data.traverse(), clazz);  
  103.                 } else if (data.isTextual()) {  
  104.                     obj = MAPPER.readValue(data.asText(), clazz);  
  105.                 }  
  106.             }  
  107.             return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);  
  108.         } catch (Exception e) {  
  109.             return null;  
  110.         }  
  111.     }  
  112.   
  113.     /** 
  114.      * 没有object对象的转化 
  115.      *  
  116.      * @param json 
  117.      * @return 
  118.      */  
  119.     public static TaotaoResult format(String json) {  
  120.         try {  
  121.             return MAPPER.readValue(json, TaotaoResult.class);  
  122.         } catch (Exception e) {  
  123.             e.printStackTrace();  
  124.         }  
  125.         return null;  
  126.     }  
  127.   
  128.     /** 
  129.      * Object是集合转化 
  130.      *  
  131.      * @param jsonData json数据 
  132.      * @param clazz 集合中的类型 
  133.      * @return 
  134.      */  
  135.     public static TaotaoResult formatToList(String jsonData, Class<?> clazz) {  
  136.         try {  
  137.             JsonNode jsonNode = MAPPER.readTree(jsonData);  
  138.             JsonNode data = jsonNode.get("data");  
  139.             Object obj = null;  
  140.             if (data.isArray() && data.size() > 0) {  
  141.                 obj = MAPPER.readValue(data.traverse(),  
  142.                         MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));  
  143.             }  
  144.             return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);  
  145.         } catch (Exception e) {  
  146.             return null;  
  147.         }  
  148.     }  
  149.   
  150. }  

11.jedis操作

[java] view plain copy
  1. package com.taotao.jedis;  
  2.   
  3. public interface JedisClient {  
  4.   
  5.     String set(String key, String value);  
  6.     String get(String key);  
  7.     Boolean exists(String key);  
  8.     Long expire(String key, int seconds);  
  9.     Long ttl(String key);  
  10.     Long incr(String key);  
  11.     Long hset(String key, String field, String value);  
  12.     String hget(String key, String field);  
  13.     Long hdel(String key, String... field);  
  14. }  
[java] view plain copy
  1. package com.taotao.jedis;  
  2.   
  3. import org.springframework.beans.factory.annotation.Autowired;  
  4.   
  5. import redis.clients.jedis.JedisCluster;  
  6.   
  7. public class JedisClientCluster implements JedisClient {  
  8.       
  9.     @Autowired  
  10.     private JedisCluster jedisCluster;  
  11.   
  12.     @Override  
  13.     public String set(String key, String value) {  
  14.         return jedisCluster.set(key, value);  
  15.     }  
  16.   
  17.     @Override  
  18.     public String get(String key) {  
  19.         return jedisCluster.get(key);  
  20.     }  
  21.   
  22.     @Override  
  23.     public Boolean exists(String key) {  
  24.         return jedisCluster.exists(key);  
  25.     }  
  26.   
  27.     @Override  
  28.     public Long expire(String key, int seconds) {  
  29.         return jedisCluster.expire(key, seconds);  
  30.     }  
  31.   
  32.     @Override  
  33.     public Long ttl(String key) {  
  34.         return jedisCluster.ttl(key);  
  35.     }  
  36.   
  37.     @Override  
  38.     public Long incr(String key) {  
  39.         return jedisCluster.incr(key);  
  40.     }  
  41.   
  42.     @Override  
  43.     public Long hset(String key, String field, String value) {  
  44.         return jedisCluster.hset(key, field, value);  
  45.     }  
  46.   
  47.     @Override  
  48.     public String hget(String key, String field) {  
  49.         return jedisCluster.hget(key, field);  
  50.     }  
  51.   
  52.     @Override  
  53.     public Long hdel(String key, String... field) {  
  54.         return jedisCluster.hdel(key, field);  
  55.     }  
  56.   
  57. }  

[java] view plain copy
  1. package com.taotao.jedis;  
  2.   
  3.   
  4. import org.springframework.beans.factory.annotation.Autowired;  
  5.   
  6.   
  7. import redis.clients.jedis.Jedis;  
  8. import redis.clients.jedis.JedisPool;  
  9.   
  10.   
  11. public class JedisClientPool implements JedisClient {  
  12.       
  13.     @Autowired  
  14.     private JedisPool jedisPool;  
  15.   
  16.   
  17.     @Override  
  18.     public String set(String key, String value) {  
  19.         Jedis jedis = jedisPool.getResource();  
  20.         String result = jedis.set(key, value);  
  21.         jedis.close();  
  22.         return result;  
  23.     }  
  24.   
  25.   
  26.     @Override  
  27.     public String get(String key) {  
  28.         Jedis jedis = jedisPool.getResource();  
  29.         String result = jedis.get(key);  
  30.         jedis.close();  
  31.         return result;  
  32.     }  
  33.   
  34.   
  35.     @Override  
  36.     public Boolean exists(String key) {  
  37.         Jedis jedis = jedisPool.getResource();  
  38.         Boolean result = jedis.exists(key);  
  39.         jedis.close();  
  40.         return result;  
  41.     }  
  42.   
  43.   
  44.     @Override  
  45.     public Long expire(String key, int seconds) {  
  46.         Jedis jedis = jedisPool.getResource();  
  47.         Long result = jedis.expire(key, seconds);  
  48.         jedis.close();  
  49.         return result;  
  50.     }  
  51.   
  52.   
  53.     @Override  
  54.     public Long ttl(String key) {  
  55.         Jedis jedis = jedisPool.getResource();  
  56.         Long result = jedis.ttl(key);  
  57.         jedis.close();  
  58.         return result;  
  59.     }  
  60.   
  61.   
  62.     @Override  
  63.     public Long incr(String key) {  
  64.         Jedis jedis = jedisPool.getResource();  
  65.         Long result = jedis.incr(key);  
  66.         jedis.close();  
  67.         return result;  
  68.     }  
  69.   
  70.   
  71.     @Override  
  72.     public Long hset(String key, String field, String value) {  
  73.         Jedis jedis = jedisPool.getResource();  
  74.         Long result = jedis.hset(key, field, value);  
  75.         jedis.close();  
  76.         return result;  
  77.     }  
  78.   
  79.   
  80.     @Override  
  81.     public String hget(String key, String field) {  
  82.         Jedis jedis = jedisPool.getResource();  
  83.         String result = jedis.hget(key, field);  
  84.         jedis.close();  
  85.         return result;  
  86.     }  
  87.   
  88.   
  89.     @Override  
  90.     public Long hdel(String key, String... field) {  
  91.         Jedis jedis = jedisPool.getResource();  
  92.         Long result = jedis.hdel(key, field);  
  93.         jedis.close();  
  94.         return result;  
  95.     }  
  96.   
  97.   
  98. }  

相关话题:JAVA初级、中级、高级,你是什么级别,你觉得不同级别应该要对哪些技能呢?    与阿里巴巴JAVA大神一起进行JAVA互动交流吧!

网友评论

登录后评论
0/500
评论
一个小迷糊
+ 关注