package com.leo.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class ToolUtil1 { /** * 业务名称:系统常用处理工具 * 功能描述:MD5加密 * @param Str * 处理说明: * 接口说明: */ public static String getMD5Str(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes("UTF-8")); } catch (NoSuchAlgorithmException e) { System.out.println("NoSuchAlgorithmException caught!"); System.exit(-1); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } byte[] byteArray = messageDigest.digest(); StringBuffer md5StrBuff = new StringBuffer(); for (int i = 0; i < byteArray.length; i++) { if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); else md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); } return md5StrBuff.toString().toUpperCase(); } /** * 功能描述:MD5解密。 * @param str 需要解密的字符串。 * @return 返回解密后的字符串。 * 处理说明: * 接口说明: */ public static String parseMD5Str(String str) { MessageDigest messageDigest = null; char[] a = str.toCharArray(); for (int i = 0; i < a.length; i++) { a[i] = (char) (a[i] ^ 't'); } String k = new String(a); return k; } /** * 业务名称:系统常用处理工具 * 功能描述:判读字符窜是否为空 * 开发时间: Jan 22, 2010 * @param str * @return 如果str为null,="",="null",返回true;否则返回false。 * 处理说明: * 接口说明: */ public static boolean isEmptyOrNull(String str){ if(str == null || "".equals(str) || "null".equals(str)){ return true; } return false; } /** * 业务名称:系统常用处理工具 * 功能描述:把Map里面的key值对应的value返回 * 开发时间: Jan 22, 2010 * @param m * @param key * @return 如果key对应的value为null,="",="null",返回"";否则返回value。 * 处理说明: * 接口说明: */ public static String getMapValueByKey(Map m, String key){ if(isEmptyOrNull(String.valueOf(m.get(key)))){ return ""; } else { return String.valueOf(m.get(key)); } } /** * 功能描述:解压zip文件 * @param zipfileName * @param filesPath * @return * 处理说明: * 接口说明: */ public static String[] upZip(String zipfileName,String filesPath){ String[] list = null; int BUFFER = 1024; int c_index = zipfileName.indexOf("zip"); if(c_index!=zipfileName.length()-3){ return null; } try { BufferedOutputStream dest = null; FileInputStream fis = new FileInputStream(filesPath+zipfileName); filesPath = filesPath+zipfileName.substring(0, c_index-1)+"//"; File fmkdir = new File(filesPath); if(!fmkdir.exists()){ fmkdir.mkdirs(); }//获得输入流 ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); ZipEntry entry; while ( (entry = zis.getNextEntry()) != null) { System.out.println("========="+entry.getSize()); int count; byte data[] = new byte[BUFFER]; //开始读入 // 分文件写到磁盘 System.out.println(filesPath+entry.getName()); FileOutputStream fos = new FileOutputStream(filesPath+entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ( (count = zis.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, count); } //关闭流 dest.flush(); dest.close(); } zis.close(); File f = new File(filesPath); list = f.list(); //返回由path指定路径里的所有文件名和目录名 } catch (Exception e) { e.printStackTrace(); } return list; } /** * 功能描述:创建zip文件 * @param filesList * @param zipPath * @param zipName * @throws IOException * 处理说明: * 接口说明: */ public static void createZip(List<String> filesList,String zipPath,String zipName) throws IOException{ if(filesList!=null&&filesList.size()>0){ org.apache.tools.zip.ZipOutputStream zip=new org.apache.tools.zip.ZipOutputStream(new FileOutputStream(zipPath+zipName)); byte[] b = new byte[1024]; for(int i=0;i<filesList.size();i++){ String name=filesList.get(i); FileInputStream in=new FileInputStream(zipPath+name); org.apache.tools.zip.ZipEntry ze=new org.apache.tools.zip.ZipEntry(name); zip.putNextEntry(ze); int len; while((len = in.read(b))!=-1){ zip.write(b,0,len); } zip.closeEntry(); in.close(); File f = new File(zipPath+name); if(f!=null){ f.delete(); } } zip.close(); } } }