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

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://upload-images.jianshu.io/upload_images/2509688-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://blog.51cto.com/13981400/2339420

时间: 2024-07-29 13:43:48

整理收集的一些常用java工具类的相关文章

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

java中常用的工具类(一)

我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工具类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5

java并发编程中常用的工具类 Executor

/***************************************************  * TODO: description .  * @author: gao_chun  * @since:  2015-4-17  * @version: 1.0.0  * @remark: 转载请注明出处  **************************************************/ java.util.concurrent.Executor 使用 Execut

28个Java常用的工具类

源码下载:http://pan.baidu.com/s/1pJLSczD Base64.javaBase64DecodingException.javaCConst.javaCharTools.javaConfigHelper.javaCounter.javaCTool.javaDateHandler.javaDateUtil.javaDealString.javaDebugOut.javaDom4jHelper.javaEscape.javaExecHelper.javaFileHelper.

Java语言Lang包下常用的工具类介绍_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都很不错,不用你写,不用你调试,只要你发现. 在 Apache Jakarta Common 中, Lang 这个 Java 工具包是所有 Apache Jakarta Common 项目中被使用最广泛的,几乎你所知道的名气比较大的软件里面都有用到它,包括 Tomcat, Weblogic, Webs

常用高效 Java 工具类总结

一.前言 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 二.org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.socket.或者selector且不抛出异常,通常放在finally块 toString:转换IO流. Uri. byte[]为String copy:IO流数据复制,从输入流写到输出流中

第一章 Java工具类目录

在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算

Android常用的工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S