美文网首页学习Java技术文章Java技术精选
整理收集的一些常用java工具类

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

作者: 阿里云云栖号 | 来源:发表于2018-05-23 16:09 被阅读1344次

    1.json转换工具

    1.  package com.taotao.utils;  
    
    3.  import java.util.List;  
    
    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;  
    
    10.  /** 
    11.  * json转换工具类 
    12.  */  
    13.  public class JsonUtils {  
    
    15.  // 定义jackson对象  
    16.  private static final ObjectMapper MAPPER = new ObjectMapper();  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    69.  return null;  
    70.  }  
    
    72.  }  
    

    2.cookie的读写

    
    1.  package com.taotao.common.utils;  
    
    3.  import java.io.UnsupportedEncodingException;  
    4.  import java.net.URLDecoder;  
    5.  import java.net.URLEncoder;  
    
    7.  import javax.servlet.http.Cookie;  
    8.  import javax.servlet.http.HttpServletRequest;  
    9.  import javax.servlet.http.HttpServletResponse;  
    
    12.  /** 
    13.  *  
    14.  * Cookie 工具类 
    15.  * 
    16.  */  
    17.  public final class CookieUtils {  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    126.  /** 
    127.  * 删除Cookie带cookie域名 
    128.  */  
    129.  public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,  
    130.  String cookieName) {  
    131.  doSetCookie(request, response, cookieName, "", -1, false);  
    132.  }  
    
    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.  }  
    
    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.  }  
    
    194.  /** 
    195.  * 得到cookie的域名 
    196.  */  
    197.  private static final String getDomainName(HttpServletRequest request) {  
    198.  String domainName = null;  
    
    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.  }  
    
    221.  if (domainName != null && domainName.indexOf(":") > 0) {  
    222.  String[] ary = domainName.split("\\:");  
    223.  domainName = ary[0];  
    224.  }  
    225.  return domainName;  
    226.  }  
    
    228.  }  
    

    3.HttpClientUtil

    1.  package com.taotao.utils;  
    
    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;  
    
    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;  
    
    22.  public class HttpClientUtil {  
    
    24.  public static String doGet(String url, Map<String, String> param) {  
    
    26.  // 创建Httpclient对象  
    27.  CloseableHttpClient httpclient = HttpClients.createDefault();  
    
    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();  
    
    41.  // 创建http GET请求  
    42.  HttpGet httpGet = new HttpGet(uri);  
    
    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.  }  
    
    65.  public static String doGet(String url) {  
    66.  return doGet(url, null);  
    67.  }  
    
    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.  }  
    
    101.  return resultString;  
    102.  }  
    
    104.  public static String doPost(String url) {  
    105.  return doPost(url, null);  
    106.  }  
    
    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.  }  
    
    133.  return resultString;  
    134.  }  
    135.  }  
    

    4.FastDFSClient工具类

    1.  package cn.itcast.fastdfs.cliennt;  
    
    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;  
    
    10.  public class FastDFSClient {  
    
    12.  private TrackerClient trackerClient = null;  
    13.  private TrackerServer trackerServer = null;  
    14.  private StorageServer storageServer = null;  
    15.  private StorageClient1 storageClient = null;  
    
    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.  }  
    
    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.  }  
    
    43.  public String uploadFile(String fileName) throws Exception {  
    44.  return uploadFile(fileName, null, null);  
    45.  }  
    
    47.  public String uploadFile(String fileName, String extName) throws Exception {  
    48.  return uploadFile(fileName, extName, null);  
    49.  }  
    
    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 {  
    
    63.  String result = storageClient.upload_file1(fileContent, extName, metas);  
    64.  return result;  
    65.  }  
    
    67.  public String uploadFile(byte[] fileContent) throws Exception {  
    68.  return uploadFile(fileContent, null, null);  
    69.  }  
    
    71.  public String uploadFile(byte[] fileContent, String extName) throws Exception {  
    72.  return uploadFile(fileContent, extName, null);  
    73.  }  
    74.  }  
    
    1.  <span style="font-size:14px;font-weight:normal;">public class FastDFSTest {  
    
    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>  
    
    # ![image](http:https://img.haomeiwen.com/i2509688/45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    5.获取异常的堆栈信息

    
    1.  package com.taotao.utils;  
    
    3.  import java.io.PrintWriter;  
    4.  import java.io.StringWriter;  
    
    6.  public class ExceptionUtil {  
    
    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);  
    
    18.  try {  
    19.  t.printStackTrace(pw);  
    20.  return sw.toString();  
    21.  } finally {  
    22.  pw.close();  
    23.  }  
    24.  }  
    25.  }  
    

    #6.easyUIDataGrid对象返回值

    1.  package com.taotao.result;  
    
    3.  import java.util.List;  
    
    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 {  
    
    16.  private Integer total;  
    
    18.  private List<?> rows;  
    
    20.  public EasyUIResult(Integer total, List<?> rows) {  
    21.  this.total = total;  
    22.  this.rows = rows;  
    23.  }  
    
    25.  public EasyUIResult(long total, List<?> rows) {  
    26.  this.total = (int) total;  
    27.  this.rows = rows;  
    28.  }  
    
    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.  }  
    
    44.  }  
    

    7.ftp上传下载工具类

    1.  package com.taotao.utils;  
    
    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;  
    
    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;  
    
    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 {  
    
    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.  }  
    
    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());  
    
    123.  OutputStream is = new FileOutputStream(localFile);  
    124.  ftp.retrieveFile(ff.getName(), is);  
    125.  is.close();  
    126.  }  
    127.  }  
    
    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.  }  
    
    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生成策略

    1.  package com.taotao.utils;  
    
    3.  import java.util.Random;  
    
    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 {  
    
    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);  
    
    27.  return str;  
    28.  }  
    
    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.  }  
    
    46.  public static void main(String[] args) {  
    47.  for(int i=0;i< 100;i++)  
    48.  System.out.println(genItemId());  
    49.  }  
    50.  }  
    

    ##9.上传图片返回值

    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 {  
    
    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.  }  
    
    53.  }  
    

    10.自定义响应结构

    
    1.  package com.result;  
    
    3.  import java.util.List;  
    
    5.  import com.fasterxml.jackson.databind.JsonNode;  
    6.  import com.fasterxml.jackson.databind.ObjectMapper;  
    
    8.  /** 
    9.  * 自定义响应结构 
    10.  */  
    11.  public class TaotaoResult {  
    
    13.  // 定义jackson对象  
    14.  private static final ObjectMapper MAPPER = new ObjectMapper();  
    
    16.  // 响应业务状态  
    17.  private Integer status;  
    
    19.  // 响应消息  
    20.  private String msg;  
    
    22.  // 响应中的数据  
    23.  private Object data;  
    
    25.  public static TaotaoResult build(Integer status, String msg, Object data) {  
    26.  return new TaotaoResult(status, msg, data);  
    27.  }  
    
    29.  public static TaotaoResult ok(Object data) {  
    30.  return new TaotaoResult(data);  
    31.  }  
    
    33.  public static TaotaoResult ok() {  
    34.  return new TaotaoResult(null);  
    35.  }  
    
    37.  public TaotaoResult() {  
    
    39.  }  
    
    41.  public static TaotaoResult build(Integer status, String msg) {  
    42.  return new TaotaoResult(status, msg, null);  
    43.  }  
    
    45.  public TaotaoResult(Integer status, String msg, Object data) {  
    46.  this.status = status;  
    47.  this.msg = msg;  
    48.  this.data = data;  
    49.  }  
    
    51.  public TaotaoResult(Object data) {  
    52.  this.status = 200;  
    53.  this.msg = "OK";  
    54.  this.data = data;  
    55.  }  
    
    57.  //    public Boolean isOK() {  
    58.  //        return this.status == 200;  
    59.  //    }  
    
    61.  public Integer getStatus() {  
    62.  return status;  
    63.  }  
    
    65.  public void setStatus(Integer status) {  
    66.  this.status = status;  
    67.  }  
    
    69.  public String getMsg() {  
    70.  return msg;  
    71.  }  
    
    73.  public void setMsg(String msg) {  
    74.  this.msg = msg;  
    75.  }  
    
    77.  public Object getData() {  
    78.  return data;  
    79.  }  
    
    81.  public void setData(Object data) {  
    82.  this.data = data;  
    83.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    150.  }  
    

    ##11.jedis操作

    1.  package com.taotao.jedis;  
    
    3.  public interface JedisClient {  
    
    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.  }  
    
    1.  package com.taotao.jedis;  
    
    3.  import org.springframework.beans.factory.annotation.Autowired;  
    
    5.  import redis.clients.jedis.JedisCluster;  
    
    7.  public class JedisClientCluster implements JedisClient {  
    
    9.  @Autowired  
    10.  private JedisCluster jedisCluster;  
    
    12.  @Override  
    13.  public String set(String key, String value) {  
    14.  return jedisCluster.set(key, value);  
    15.  }  
    
    17.  @Override  
    18.  public String get(String key) {  
    19.  return jedisCluster.get(key);  
    20.  }  
    
    22.  @Override  
    23.  public Boolean exists(String key) {  
    24.  return jedisCluster.exists(key);  
    25.  }  
    
    27.  @Override  
    28.  public Long expire(String key, int seconds) {  
    29.  return jedisCluster.expire(key, seconds);  
    30.  }  
    
    32.  @Override  
    33.  public Long ttl(String key) {  
    34.  return jedisCluster.ttl(key);  
    35.  }  
    
    37.  @Override  
    38.  public Long incr(String key) {  
    39.  return jedisCluster.incr(key);  
    40.  }  
    
    42.  @Override  
    43.  public Long hset(String key, String field, String value) {  
    44.  return jedisCluster.hset(key, field, value);  
    45.  }  
    
    47.  @Override  
    48.  public String hget(String key, String field) {  
    49.  return jedisCluster.hget(key, field);  
    50.  }  
    
    52.  @Override  
    53.  public Long hdel(String key, String... field) {  
    54.  return jedisCluster.hdel(key, field);  
    55.  }  
    
    57.  }  
    
    1.  package com.taotao.jedis;  
    
    4.  import org.springframework.beans.factory.annotation.Autowired;  
    
    7.  import redis.clients.jedis.Jedis;  
    8.  import redis.clients.jedis.JedisPool;  
    
    11.  public class JedisClientPool implements JedisClient {  
    
    13.  @Autowired  
    14.  private JedisPool jedisPool;  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    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.  }  
    
    98.  }  
    
    本文作者:[一个小迷糊]
    
    
    [阅读原文]([http://click.aliyun.com/m/50526/]
    
    
    本文为云栖社区原创内容,未经允许不得转载。

    相关文章

      网友评论

      本文标题:整理收集的一些常用java工具类

      本文链接:https://www.haomeiwen.com/subject/mxgrjftx.html