常用工具类封装

日期转换工具类 CommUtil.java

[java] view
plain
 copy

  1. package com.util;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. /**
  6. * 日期转换工具类
  7. */
  8. public class CommUtil {
  9. /**
  10. * 将日期格式转换成yyyy-MM-dd的字符串格式
  11. * 返回值如:2010-10-06
  12. * @param time 要转换的日期
  13. * @return
  14. */
  15. public static  String dateToString(Date time)  {
  16. SimpleDateFormat formatter = new  SimpleDateFormat ("yyyy-MM-dd"); //定义将日期格式要换成的格式
  17. String stringTime  =  formatter.format(time);
  18. return  stringTime;
  19. }
  20. /**
  21. * 将日期格式转换成yyyyMMdd的字符串格式
  22. * 返回值如:2010-10-06
  23. * @param time 要转换的日期
  24. * @return
  25. */
  26. public static  String dateTimeToString(Date time)  {
  27. SimpleDateFormat formatter = new  SimpleDateFormat ("yyyyMMdd"); //定义将日期格式要换成的格式
  28. String stringTime  =  formatter.format(time);
  29. return  stringTime;
  30. }
  31. /**
  32. * 将日期格式转换成yyyy-MM-dd的字符串格式
  33. * 返回值如:2010-10-06
  34. * @param time 要转换的日期
  35. * @return
  36. */
  37. public static  Date dateToDate(Date time)  {
  38. SimpleDateFormat formatter = new  SimpleDateFormat ("yyyy-MM-dd"); //定义将日期格式要换成的格式
  39. String stringTime  =  formatter.format(time);
  40. Date date = null;
  41. try {
  42. date = formatter.parse(stringTime);
  43. } catch (ParseException e) {
  44. e.printStackTrace();
  45. }
  46. return  date;
  47. }
  48. /**
  49. * 得到当前时间,以字符串表示
  50. * @return
  51. */
  52. public static String getDate(){
  53. Date date = new Date();
  54. return CommUtil.dateToString(date);
  55. }
  56. }

日期转换类  DateConverter.java

[java] view
plain
 copy

  1. package com.util;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Map;
  6. import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
  7. /**
  8. * 日期转换类
  9. *
  10. */
  11. public class DateConverter extends DefaultTypeConverter {
  12. private static final DateFormat[] ACCEPT_DATE_FORMATS = {
  13. new SimpleDateFormat("dd/MM/yyyy"),
  14. new SimpleDateFormat("yyyy-MM-dd"),
  15. new SimpleDateFormat("yyyy/MM/dd") }; //支持转换的日期格式
  16. @Override
  17. public Object convertValue(Map context, Object value, Class toType) {
  18. if (toType == Date.class) {  //浏览器向服务器提交时,进行String to Date的转换
  19. Date date = null;
  20. String dateString = null;
  21. String[] params = (String[])value;
  22. dateString = params[0];//获取日期的字符串
  23. for (DateFormat format : ACCEPT_DATE_FORMATS) {
  24. try {
  25. return format.parse(dateString);//遍历日期支持格式,进行转换
  26. } catch(Exception e) {
  27. continue;
  28. }
  29. }
  30. return null;
  31. }
  32. else if (toType == String.class) {   //服务器向浏览器输出时,进行Date to String的类型转换
  33. Date date = (Date)value;
  34. return new SimpleDateFormat("yyyy-MM-dd").format(date);//输出的格式是yyyy-MM-dd
  35. }
  36. return null;
  37. }
  38. }

功能更强大的格式化工具类 FormatUtils.java

[java] view
plain
 copy

  1. package com.util;
  2. import java.text.DecimalFormat;
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. /**
  7. * 功能更强大的格式化工具类
  8. */
  9. public class FormatUtils {
  10. private static SimpleDateFormat second = new SimpleDateFormat(
  11. "yy-MM-dd hh:mm:ss");
  12. private static SimpleDateFormat day = new SimpleDateFormat("yyyy-MM-dd");
  13. private static SimpleDateFormat detailDay = new SimpleDateFormat("yyyy年MM月dd日");
  14. private static SimpleDateFormat fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
  15. private static SimpleDateFormat tempTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  16. private static SimpleDateFormat excelDate = new SimpleDateFormat("yyyy/MM/dd");
  17. /**
  18. * 格式化excel中的时间
  19. * @param date
  20. * @return
  21. */
  22. public static String formatDateForExcelDate(Date date) {
  23. return excelDate.format(date);
  24. }
  25. /**
  26. * 将日期格式化作为文件名
  27. * @param date
  28. * @return
  29. */
  30. public static String formatDateForFileName(Date date) {
  31. return fileName.format(date);
  32. }
  33. /**
  34. * 格式化日期(精确到秒)
  35. *
  36. * @param date
  37. * @return
  38. */
  39. public static String formatDateSecond(Date date) {
  40. return second.format(date);
  41. }
  42. /**
  43. * 格式化日期(精确到秒)
  44. *
  45. * @param date
  46. * @return
  47. */
  48. public static String tempDateSecond(Date date) {
  49. return tempTime.format(date);
  50. }
  51. public static Date tempDateSecond(String str) {
  52. try {
  53. return tempTime.parse(str);
  54. } catch (ParseException e) {
  55. e.printStackTrace();
  56. }
  57. return new Date();
  58. }
  59. /**
  60. * 格式化日期(精确到天)
  61. *
  62. * @param date
  63. * @return
  64. */
  65. public static String formatDateDay(Date date) {
  66. return day.format(date);
  67. }
  68. /**
  69. * 格式化日期(精确到天)
  70. *
  71. * @param date
  72. * @return
  73. */
  74. public static String formatDateDetailDay(Date date) {
  75. return detailDay.format(date);
  76. }
  77. /**
  78. * 将double类型的数字保留两位小数(四舍五入)
  79. *
  80. * @param number
  81. * @return
  82. */
  83. public static String formatNumber(double number) {
  84. DecimalFormat df = new DecimalFormat();
  85. df.applyPattern("#0.00");
  86. return df.format(number);
  87. }
  88. /**
  89. * 将字符串转换成日期
  90. *
  91. * @param date
  92. * @return
  93. * @throws Exception
  94. */
  95. public static Date formateDate(String date) throws Exception {
  96. return day.parse(date);
  97. }
  98. /**
  99. * 将字符日期转换成Date
  100. * @param date
  101. * @return
  102. * @throws Exception
  103. */
  104. public static Date parseStringToDate(String date) throws Exception {
  105. return day.parse(date);
  106. }
  107. public static String formatDoubleNumber(double number) {
  108. DecimalFormat df = new DecimalFormat("#");
  109. return df.format(number);
  110. }

分页工具类 SharePager.java

[java] view
plain
 copy

  1. package com.util;
  2. /**
  3. * 分页工具类
  4. *
  5. */
  6. public class SharePager {
  7. private int totalRows; //总行数
  8. private int pageSize = 20; //每页显示的行数
  9. private int currentPage; //当前页号
  10. private int totalPages; //总页数
  11. private int startRow; //当前页在数据库中的起始行
  12. /**
  13. * 默认构造函数
  14. */
  15. public SharePager()
  16. {
  17. }
  18. /**默认每页10行
  19. * @param totalRows
  20. */
  21. public SharePager(int totalRows)
  22. {
  23. this.totalRows = totalRows;
  24. totalPages =(int) Math.ceil((double)totalRows / (double)pageSize);
  25. startRow = 0;
  26. }
  27. /**可自定义每页显示多少页
  28. * @param totalRows
  29. * @param pageSize
  30. */
  31. public SharePager(int totalRows, int pageSize)
  32. {
  33. this.totalRows = totalRows;
  34. this.pageSize = pageSize;
  35. if(this.pageSize<1)
  36. this.pageSize=1;
  37. else if(pageSize>20)
  38. this.pageSize=20;
  39. //        if(this.pageSize>totalRows){
  40. //          this.pageSize=(int)totalRows;
  41. //        }
  42. totalPages =(int) Math.ceil((double)totalRows / (double)this.pageSize);
  43. currentPage = 1;
  44. startRow = 0;
  45. }
  46. /**
  47. * 跳转到首页
  48. */
  49. public void first()
  50. {
  51. this.currentPage = 1;
  52. this.startRow = 0;
  53. }
  54. /**
  55. * 跳转到上一页
  56. */
  57. public void previous()
  58. {
  59. if (currentPage == 1)
  60. {
  61. return;
  62. }
  63. currentPage--;
  64. startRow = (currentPage-1) * pageSize;
  65. }
  66. /**
  67. * 跳转到下一页
  68. */
  69. public void next()
  70. {
  71. if (currentPage < totalPages)
  72. {
  73. currentPage++;
  74. }
  75. startRow = (currentPage-1) * pageSize;
  76. }
  77. /**
  78. *  跳转到尾页
  79. */
  80. public void last()
  81. {
  82. this.currentPage = totalPages;
  83. if(currentPage<1){
  84. currentPage = 1;
  85. }
  86. this.startRow = (currentPage-1) * this.pageSize;
  87. totalPages =(int) Math.ceil((double)totalRows / (double)this.pageSize);
  88. }
  89. /**
  90. * 跳转到指定页
  91. * @param currentPage   指定的页
  92. */
  93. public void refresh(int currentPage)
  94. {
  95. if(currentPage < 0)
  96. {
  97. first();
  98. }
  99. if (currentPage > totalPages)
  100. {
  101. last();
  102. }else{
  103. this.currentPage = currentPage;
  104. this.startRow = (currentPage-1) * this.pageSize;
  105. }
  106. }
  107. public int getStartRow()
  108. {
  109. return startRow;
  110. }
  111. public int getTotalPages()
  112. {
  113. return totalPages;
  114. }
  115. public int getCurrentPage()
  116. {
  117. return currentPage;
  118. }
  119. public int getPageSize()
  120. {
  121. return pageSize;
  122. }
  123. public void setTotalRows(int totalRows)
  124. {
  125. this.totalRows = totalRows;
  126. }
  127. public void setStartRow(int startRow)
  128. {
  129. this.startRow = startRow;
  130. }
  131. public void setTotalPages(int totalPages)
  132. {
  133. this.totalPages = totalPages;
  134. }
  135. public void setCurrentPage(int currentPage)
  136. {
  137. this.currentPage = currentPage;
  138. }
  139. public void setPageSize(int pageSize)
  140. {
  141. this.pageSize = pageSize;
  142. }
  143. public int getTotalRows()
  144. {
  145. return totalRows;
  146. }
  147. }
  148. 读取Config文件工具类 PropertiesConfig.java

    [java] view
    plain
     copy

    1. package com.util;
    2. import java.io.BufferedInputStream;
    3. import java.io.FileInputStream;
    4. import java.io.InputStream;
    5. import java.util.Properties;
    6. /**
    7. * 读取Config文件工具类
    8. * @version 1.0
    9. * @since JDK 1.6
    10. */
    11. public class PropertiesConfig {
    12. /**
    13. * 获取整个配置文件中的属性
    14. * @param filePath 文件路径,即文件所在包的路径,例如:java/util/config.properties
    15. */
    16. public static Properties readData(String filePath) {
    17. filePath = getRealPath(filePath);
    18. Properties props = new Properties();
    19. try {
    20. InputStream in = new BufferedInputStream(new FileInputStream(filePath));
    21. props.load(in);
    22. in.close();
    23. return props;
    24. } catch (Exception e) {
    25. e.printStackTrace();
    26. return null;
    27. }
    28. }
    29. private static String getRealPath(String filePath) {
    30. //获取绝对路径 并截掉路径的”file:/“前缀
    31. return PropertiesConfig.class.getResource("/" + filePath).toString().substring(6);
    32. }
    33. }

    MD5编码工具类 MD5Code.java

    [java] view
    plain
     copy

    1. package com.util;
    2. /**
    3. * MD5编码工具类
    4. *
    5. */
    6. public class MD5Code {
    7. static final int S11 = 7;
    8. static final int S12 = 12;
    9. static final int S13 = 17;
    10. static final int S14 = 22;
    11. static final int S21 = 5;
    12. static final int S22 = 9;
    13. static final int S23 = 14;
    14. static final int S24 = 20;
    15. static final int S31 = 4;
    16. static final int S32 = 11;
    17. static final int S33 = 16;
    18. static final int S34 = 23;
    19. static final int S41 = 6;
    20. static final int S42 = 10;
    21. static final int S43 = 15;
    22. static final int S44 = 21;
    23. static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    24. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    25. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    26. 0, 0, 0, 0, 0, 0, 0 };
    27. private long[] state = new long[4];// state (ABCD)
    28. private long[] count = new long[2];// number of bits, modulo 2^64 (lsb
    29. // first)
    30. private byte[] buffer = new byte[64]; // input buffer
    31. public String digestHexStr;
    32. private byte[] digest = new byte[16];
    33. public String getMD5ofStr(String inbuf) {
    34. md5Init();
    35. md5Update(inbuf.getBytes(), inbuf.length());
    36. md5Final();
    37. digestHexStr = "";
    38. for (int i = 0; i < 16; i++) {
    39. digestHexStr += byteHEX(digest[i]);
    40. }
    41. return digestHexStr;
    42. }
    43. public MD5Code() {
    44. md5Init();
    45. return;
    46. }
    47. private void md5Init() {
    48. count[0] = 0L;
    49. count[1] = 0L;
    50. // /* Load magic initialization constants.
    51. state[0] = 0x67452301L;
    52. state[1] = 0xefcdab89L;
    53. state[2] = 0x98badcfeL;
    54. state[3] = 0x10325476L;
    55. return;
    56. }
    57. private long F(long x, long y, long z) {
    58. return (x & y) | ((~x) & z);
    59. }
    60. private long G(long x, long y, long z) {
    61. return (x & z) | (y & (~z));
    62. }
    63. private long H(long x, long y, long z) {
    64. return x ^ y ^ z;
    65. }
    66. private long I(long x, long y, long z) {
    67. return y ^ (x | (~z));
    68. }
    69. private long FF(long a, long b, long c, long d, long x, long s, long ac) {
    70. a += F(b, c, d) + x + ac;
    71. a = ((int) a << s) | ((int) a >>> (32 - s));
    72. a += b;
    73. return a;
    74. }
    75. private long GG(long a, long b, long c, long d, long x, long s, long ac) {
    76. a += G(b, c, d) + x + ac;
    77. a = ((int) a << s) | ((int) a >>> (32 - s));
    78. a += b;
    79. return a;
    80. }
    81. private long HH(long a, long b, long c, long d, long x, long s, long ac) {
    82. a += H(b, c, d) + x + ac;
    83. a = ((int) a << s) | ((int) a >>> (32 - s));
    84. a += b;
    85. return a;
    86. }
    87. private long II(long a, long b, long c, long d, long x, long s, long ac) {
    88. a += I(b, c, d) + x + ac;
    89. a = ((int) a << s) | ((int) a >>> (32 - s));
    90. a += b;
    91. return a;
    92. }
    93. private void md5Update(byte[] inbuf, int inputLen) {
    94. int i, index, partLen;
    95. byte[] block = new byte[64];
    96. index = (int) (count[0] >>> 3) & 0x3F;
    97. // /* Update number of bits */
    98. if ((count[0] += (inputLen << 3)) < (inputLen << 3))
    99. count[1]++;
    100. count[1] += (inputLen >>> 29);
    101. partLen = 64 - index;
    102. // Transform as many times as possible.
    103. if (inputLen >= partLen) {
    104. md5Memcpy(buffer, inbuf, index, 0, partLen);
    105. md5Transform(buffer);
    106. for (i = partLen; i + 63 < inputLen; i += 64) {
    107. md5Memcpy(block, inbuf, 0, i, 64);
    108. md5Transform(block);
    109. }
    110. index = 0;
    111. } else
    112. i = 0;
    113. // /* Buffer remaining input */
    114. md5Memcpy(buffer, inbuf, index, i, inputLen - i);
    115. }
    116. private void md5Final() {
    117. byte[] bits = new byte[8];
    118. int index, padLen;
    119. // /* Save number of bits */
    120. Encode(bits, count, 8);
    121. // /* Pad out to 56 mod 64.
    122. index = (int) (count[0] >>> 3) & 0x3f;
    123. padLen = (index < 56) ? (56 - index) : (120 - index);
    124. md5Update(PADDING, padLen);
    125. // /* Append length (before padding) */
    126. md5Update(bits, 8);
    127. // /* Store state in digest */
    128. Encode(digest, state, 16);
    129. }
    130. private void md5Memcpy(byte[] output, byte[] input, int outpos, int inpos,
    131. int len) {
    132. int i;
    133. for (i = 0; i < len; i++)
    134. output[outpos + i] = input[inpos + i];
    135. }
    136. private void md5Transform(byte block[]) {
    137. long a = state[0], b = state[1], c = state[2], d = state[3];
    138. long[] x = new long[16];
    139. Decode(x, block, 64);
    140. /* Round 1 */
    141. a = FF(a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */
    142. d = FF(d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */
    143. c = FF(c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */
    144. b = FF(b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */
    145. a = FF(a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */
    146. d = FF(d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */
    147. c = FF(c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */
    148. b = FF(b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */
    149. a = FF(a, b, c, d, x[8], S11, 0x698098d8L); /* 9 */
    150. d = FF(d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */
    151. c = FF(c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */
    152. b = FF(b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */
    153. a = FF(a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */
    154. d = FF(d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */
    155. c = FF(c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */
    156. b = FF(b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */
    157. /* Round 2 */
    158. a = GG(a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */
    159. d = GG(d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */
    160. c = GG(c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */
    161. b = GG(b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */
    162. a = GG(a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */
    163. d = GG(d, a, b, c, x[10], S22, 0x2441453L); /* 22 */
    164. c = GG(c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */
    165. b = GG(b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */
    166. a = GG(a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */
    167. d = GG(d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */
    168. c = GG(c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */
    169. b = GG(b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */
    170. a = GG(a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */
    171. d = GG(d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */
    172. c = GG(c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */
    173. b = GG(b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */
    174. /* Round 3 */
    175. a = HH(a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */
    176. d = HH(d, a, b, c, x[8], S32, 0x8771f681L); /* 34 */
    177. c = HH(c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */
    178. b = HH(b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */
    179. a = HH(a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */
    180. d = HH(d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */
    181. c = HH(c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */
    182. b = HH(b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */
    183. a = HH(a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */
    184. d = HH(d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */
    185. c = HH(c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */
    186. b = HH(b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */
    187. a = HH(a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */
    188. d = HH(d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */
    189. c = HH(c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */
    190. b = HH(b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */
    191. /* Round 4 */
    192. a = II(a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */
    193. d = II(d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */
    194. c = II(c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */
    195. b = II(b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */
    196. a = II(a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */
    197. d = II(d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */
    198. c = II(c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */
    199. b = II(b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */
    200. a = II(a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */
    201. d = II(d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */
    202. c = II(c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */
    203. b = II(b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */
    204. a = II(a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */
    205. d = II(d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */
    206. c = II(c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */
    207. b = II(b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */
    208. state[0] += a;
    209. state[1] += b;
    210. state[2] += c;
    211. state[3] += d;
    212. }
    213. private void Encode(byte[] output, long[] input, int len) {
    214. int i, j;
    215. for (i = 0, j = 0; j < len; i++, j += 4) {
    216. output[j] = (byte) (input[i] & 0xffL);
    217. output[j + 1] = (byte) ((input[i] >>> 8) & 0xffL);
    218. output[j + 2] = (byte) ((input[i] >>> 16) & 0xffL);
    219. output[j + 3] = (byte) ((input[i] >>> 24) & 0xffL);
    220. }
    221. }
    222. private void Decode(long[] output, byte[] input, int len) {
    223. int i, j;
    224. for (i = 0, j = 0; j < len; i++, j += 4)
    225. output[i] = b2iu(input[j]) | (b2iu(input[j + 1]) << 8)
    226. | (b2iu(input[j + 2]) << 16) | (b2iu(input[j + 3]) << 24);
    227. return;
    228. }
    229. public static long b2iu(byte b) {
    230. return b < 0 ? b & 0x7F + 128 : b;
    231. }
    232. public static String byteHEX(byte ib) {
    233. char[] Digit = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘A‘,
    234. ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘ };
    235. char[] ob = new char[2];
    236. ob[0] = Digit[(ib >>> 4) & 0X0F];
    237. ob[1] = Digit[ib & 0X0F];
    238. String s = new String(ob);
    239. return s;
    240. }
    241. }

    文件上传工具类 UploadUtil.java

    [java] view
    plain
     copy

    1. package com.util;
    2. import java.io.BufferedInputStream;
    3. import java.io.BufferedOutputStream;
    4. import java.io.File;
    5. import java.io.FileInputStream;
    6. import java.io.FileOutputStream;
    7. import java.io.InputStream;
    8. import java.io.OutputStream;
    9. import java.util.Calendar;
    10. /**
    11. * 文件上传工具类
    12. *
    13. */
    14. public class UploadUtil {
    15. private static final int BUFFER_SIZE = 16 * 1024;
    16. //保存图片
    17. public static synchronized void copy(File src, File newFile) {
    18. try {
    19. InputStream is = null;
    20. OutputStream os = null;
    21. try {
    22. is = new BufferedInputStream(new FileInputStream(src),
    23. BUFFER_SIZE);
    24. os = new BufferedOutputStream(new FileOutputStream(newFile),
    25. BUFFER_SIZE);
    26. byte[] buffer = new byte[BUFFER_SIZE];
    27. while (is.read(buffer) > 0) {
    28. os.write(buffer);
    29. }
    30. } finally {
    31. if (null != is) {
    32. is.close();
    33. }
    34. if (null != os) {
    35. os.close();
    36. }
    37. }
    38. } catch (Exception e) {
    39. e.printStackTrace();
    40. }
    41. }
    42. /**
    43. * 返回 年号+月号+天+时+分+秒+随机码
    44. * @return
    45. */
    46. @SuppressWarnings("static-access")
    47. public static synchronized String getTime() {
    48. Calendar calendar = Calendar.getInstance();
    49. String year = calendar.get(calendar.YEAR) + "";
    50. String month = (calendar.get(calendar.MONTH) + 1) + "";
    51. String day = calendar.get(calendar.DAY_OF_MONTH) + "";
    52. String hour = calendar.get(calendar.HOUR_OF_DAY) + "";
    53. String minute = calendar.get(calendar.MINUTE) + "";
    54. String second = calendar.get(calendar.SECOND) + "";
    55. String milliSecond = calendar.get(calendar.MILLISECOND) + "";
    56. int r = (int)(Math.random()*100000);
    57. String random = String.valueOf(r);
    58. return year + month + day + hour + minute + second + milliSecond + random+"a";
    59. }
    60. }

原文地址:https://www.cnblogs.com/jpfss/p/9293335.html

时间: 2025-01-13 04:38:01

常用工具类封装的相关文章

Android常用工具类封装---SharedPreferencesUtil

SharedPreferences常用于保存一些简单的数据,如记录用户操作的配置等,使用简单. public class SharedPreferencesUtil { //存储的sharedpreferences文件名 private static final String FILE_NAME = "save_file_name"; /** * 保存数据到文件 * @param context * @param key * @param data */ public static v

Android常用工具类封装---Fragment

Fragment切换 /** ** Fragment切换 @Params toFragment 将要切换到的Fragment resId 装载Fragment的view Id index Fragment的标识index toleft 判断Fragment向左切换还是向右切换,以采用不同的动画 Notes: R.anim.push_left_in等均为简单的Tranlate动画 mCurrentFragment为当前所在的Fragment,继承自BaseFragment */ protected

javascript 总结(常用工具类的封装,转)

javascript 总结(常用工具类的封装) 前言 因为工作中经常用到这些方法,所有便把这些方法进行了总结. JavaScript 1. type 类型判断 isString (o) { //是否字符串 return Object.prototype.toString.call(o).slice(8, -1) === 'String' } isNumber (o) { //是否数字 return Object.prototype.toString.call(o).slice(8, -1) ==

封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类

快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------------------------------------------------------------------------------ 不知众多Android开发者是否在程序开发的工程中也遇到过下面的问题: 0.如何在众多log中快速找到你设置打印的那行log? 1.是否还在不断的切换标签来

Java常用工具类集合

数据库连接工具类 仅仅获得连接对象 ConnDB.java package com.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对象 * */ public class ConnDB { private static Connection conn = null; private static final String DRIVER_NAME = "com.mysql

【转载】Android应用框架及常用工具类总结

转载自:Android应用框架 http://www.tuicool.com/articles/feqmQj 常用工具类总结    http://blog.csdn.net/krislight/article/details/11354119 一. UML类图复习: UML类图中有些标记很容易混淆,这里先复习下,请大家看下面这幅图: 注:这幅图来自<大话设计模式>这本书中的插图. 二.应用框架: A.基本概念 抽象(抽出共同之现象)——在同领域的程序中,常含有许多类别,这些类别有其共同点,我们

微信支付(二):工具类封装

package net.xdclass.xdvideo.utils; import java.security.MessageDigest; import java.util.UUID; /** * 常用工具类的封装,md5,uuid等 */ public class CommonUtils { /** * 生成 uuid, 即用来标识一笔单,也用做 nonce_str * @return */ public static String generateUUID(){ String uuid =

Android 常用工具类之SPUtil,可以修改默认sp文件的路径

参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.content.SharedPreferences; import java.io.

js常用工具类.

一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * 使用方式一: * var now = new Date(); * var nowStr = now.dateFormat("yyyy-MM-dd hh:mm:ss"); * 使用方式二: * new Date().dateFormat("yyyy年MM月dd日");