java web 项目 常用 小工具类 ~~~~

举报
小米粒-biubiubiu 发表于 2020/12/03 01:36:46 2020/12/03
【摘要】                                 java web 项目 常用 小工具类 ~~~~ 一 、DateUtil  日期工具类 package com.devframe.common.util; import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util...

                                java web 项目 常用 小工具类 ~~~~

一 、DateUtil  日期工具类


      package com.devframe.common.util;
      import java.text.SimpleDateFormat;
      import java.util.ArrayList;
      import java.util.Calendar;
      import java.util.Date;
      import java.util.List;
      /**
       * @author zhangkai
       * @ClassName: DateUtil
       * @Description: 日期工具类
       * @date 2017年9月22日 上午8:52:33
       */
      public class DateUtil {
      /**
       * SimpleDateFormat不是线程安全的. 在多线程并行处理的情况下, 会得到非预期的值. 这个错误非常普遍!
       * <p>所以只给定格式,自己new<p/>
       * "yyyy-MM-dd": 2017-09-22<br>
       * "yyyy-MM-dd hh:mm:ss": 2017-09-22 9:27:41<br>
       * "yyyy-MM-dd hh:mm:ss EE": 2017-09-22 9:27:41 星期五<br>
       * "yyyy年MM月dd日 hh:mm:ss EE": 2017年09月22日 9:27:41 星期五<br>
       */
      public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
      public static final String DATE_FORMAT1 = "yyyy-MM-dd";
      public static final String DATE_FORMAT2="yyyyMMddHHmmss";
      public static final String  DATE_FORMAT3= "yyMMddHHmmss";
      public static final String DATE_FORMAT4 = "yyyy-MM-dd 00:00:00";
      /**
       * 时间戳转换成日期格式字符串
       *
       * @param seconds 精确到秒的字符串
       * @param format 指定格式
       * @return String
       */
      public static String timeStamp2Datestr(String seconds, String format) {
      if (seconds == null || seconds.isEmpty() || seconds.equals("null")) {
      return "";
       }
      if (format == null || format.isEmpty()) {
       format = DATE_FORMAT;
       }
       SimpleDateFormat sdf = new SimpleDateFormat(format);
      return sdf.format(new Date(Long.valueOf(seconds + "000")));
       }
      /**
       * 日期格式字符串转换成时间戳
       *
       * @param date_str 字符串日期
       * @param format format
       * @return String
       */
      public static String datestr2TimeStamp(String date_str, String format) {
      if (format == null || format.isEmpty()) {
       format = DATE_FORMAT;
       }
      try {
       SimpleDateFormat sdf = new SimpleDateFormat(format);
      return String.valueOf(sdf.parse(date_str).getTime() / 1000);
       } catch (Exception e) {
       e.printStackTrace();
       }
      return "";
       }
      /**
       * date 转换成时间戳字符串
       *
       * @param date date
       * @return java.lang.String
       */
      public static String date2TimeStamp(Date date) {
      if (date == null) {
       date = new Date();
       }
      try {
      return String.valueOf(date.getTime());
       } catch (Exception e) {
       e.printStackTrace();
       }
      return "";
       }
      /**
       * 取得当前时间戳(精确到秒)
       *
       * @return String
       */
      public static String timeStamp() {
       long time = System.currentTimeMillis();
      return String.valueOf(time / 1000);
       }
      /**
       * date转换成string
       *
       * @param date date
       * @param format formatStr
       * @return String
       */
      public static String date2String(Date date, String format) {
      if (date == null) {
      return null;
       }
      if (format == null || format.isEmpty()) {
       format = DATE_FORMAT;
       }
      try {
       SimpleDateFormat sdf = new SimpleDateFormat(format);
      return sdf.format(date);
       } catch (Exception e) {
       e.printStackTrace();
       }
      return null;
       }
      /**
       * 时间戳转成Date
       *
       * @param timeStamp 时间戳字符串
       * @return Date
       */
      public static Date timeStamp2Date(String timeStamp) {
      if (timeStamp == null || timeStamp.isEmpty()) {
      return null;
       }
      try {
      if (timeStamp.length() == 10) {
      return new Date(Long.valueOf(timeStamp + "000"));
       }
      if (timeStamp.length() == 13) {
      return new Date(Long.valueOf(timeStamp));
       }
       } catch (Exception e) {
       e.printStackTrace();
       }
      return null;
       }
      /**
       * 时间字符串转换成Date
       *
       * @param dateString date字符串
       * @param format 转换格式字符串
       * @return Date
       */
      public static Date string2Date(String dateString, String format) {
      if (StringUtil.isNull(dateString)) {
      return null;
       }
      if (StringUtil.isNull(format)) {
       format = DATE_FORMAT;
       }
      try {
       SimpleDateFormat sdf = new SimpleDateFormat(format);
      return sdf.parse(dateString);
       } catch (Exception e) {
       e.printStackTrace();
       }
      return null;
       }
      /**
       * 返回当前时间精确到秒的时间戳
       *
       * @return Long
       */
      public static Long getSecondTimestamp() {
      return getSecondTimestamp(null);
       }
      /**
       * 获取精确到秒的时间戳,默认返回当前时间
       *
       * @return Long
       */
      public static Long getSecondTimestamp(Date date) {
      if (null == date) {
       date = new Date();
       }
      String timestamp = String.valueOf(date.getTime());
      int length = timestamp.length();
      if (length > 3) {
      return Long.valueOf(timestamp.substring(0, length - 3));
       } else {
      return 0L;
       }
       }
      /**
       * 返回传入时间与当前时间间隔秒数
       *
       * @param date date
       * @return long
       */
      public static long getTimeDelta(Date date) {
      return getTimeDelta(new Date(), date);
       }
      /**
       * 返回指定时间间隔秒数
       *
       * @param date1 date1
       * @param date2 date2
       * @return long
       */
      public static long getTimeDelta(Date date1, Date date2) {
      if (date1 == null) {
      throw new NullPointerException();
       }
      if (date2 == null) {
      return 0L;
       }
      return Math.abs(date1.getTime() - date2.getTime()) / 1000;
       }
      public static double getTimeDeltaByHour(Date date) {
      if (date == null) {
      throw new NullPointerException("date required not null");
       }
      return Math.abs(System.currentTimeMillis() - date.getTime()) / (1000 * 3600);
       }
      /**
       * 获取当前日期实在周的星期一和星期日的日期
       * @param args
       */
      public static List<String > getTimeInterval() {
       Calendar cal = Calendar.getInstance();
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
      // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 
       cal.setFirstDayOfWeek(Calendar.MONDAY);
      // 获得当前日期是一个星期的第几天 
      int day = cal.get(Calendar.DAY_OF_WEEK);
      // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 
       cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
      //星期一
      String imptimeBegin = sdf.format(cal.getTime());
       cal.add(Calendar.DATE, 6);
      //星期日
      String imptimeEnd = sdf.format(cal.getTime());
      List<String> list = new ArrayList<String>();
      list.add(imptimeBegin);
      list.add(imptimeEnd);
      return list;
      	}
      /*
       * 计算某一天所在周的星期一和星期天的日期
       */
      public static String[] convertWeekByDate(String s) throws Exception {
      String result[] =  new String[2];
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
       Date time = sdf.parse(s);
       Calendar cal = Calendar.getInstance();
       cal.setTime(time);
      // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
      int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天
      if (1 == dayWeek) {
       cal.add(Calendar.DAY_OF_MONTH, -1);
       }
       cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
      int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天
       cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
      String imptimeBegin = sdf.format(cal.getTime()); //所在周的星期一
       result[0] = imptimeBegin;
       cal.add(Calendar.DATE, 6);
      String imptimeEnd = sdf.format(cal.getTime()); //所在周的星期日
       result[1] = imptimeEnd;
      return result;
       }
      public static void main(String[] args) {
       System.out.println(DateUtil.getSecondTimestamp());
       System.out.println(DateUtil.getTimeDelta(new Date()));
       }
      }
  
 

二 、JaxbUtil  Java 对象和 xml 互转工具类


      package com.devframe.common.util;
      import java.io.StringReader;
      import java.io.StringWriter;
      import javax.xml.bind.JAXBContext;
      import javax.xml.bind.Marshaller;
      import javax.xml.bind.Unmarshaller;
      /**
       * @ClassName:
       * @Description:
       * @author DuanZhaoXu
       * @date 2018年8月23日上午8:58:52
       */
      public class JaxbXmlUtil {
     	 /**
       * JavaBean转换成xml
       * * 默认编码UTF-8
       *
       * @param obj
       * @return
       */
      public static String convertToXml(Object obj) {
      return convertToXml(obj, "UTF-8");
       }
      /**
       * JavaBean转换成xml
       * @param obj
       * @param encoding
       * @return
       */
      public static String convertToXml(Object obj, String encoding) {
      String result = null;
      try {
       JAXBContext context = JAXBContext.newInstance(obj.getClass());
       Marshaller marshaller = context.createMarshaller();
       marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
       marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
       StringWriter writer = new StringWriter();
       marshaller.marshal(obj, writer);
       result = writer.toString();
       } catch (Exception e) {
       e.printStackTrace();
       }
      return result;
       }
      /**
       * xml转换成JavaBean
       * @param xml
       * @param c
       * @return
       */
       @SuppressWarnings("unchecked")
      public static <T> T converyToJavaBean(String xml, Class<T> c) {
       T t = null;
      try {
       JAXBContext context = JAXBContext.newInstance(c);
       Unmarshaller unmarshaller = context.createUnmarshaller();
       t = (T) unmarshaller.unmarshal(new StringReader(xml));
       } catch (Exception e) {
       e.printStackTrace();
       }
      return t;
       }
      }
  
 

三 、MapRemoveNullUtil  移除map中空key或者value空值 的工具类


      package com.devframe.common.util;
      import java.util.ArrayList;
      import java.util.Collection;
      import java.util.HashMap;
      import java.util.Iterator;
      import java.util.Map;
      import java.util.Set;
      public class MapRemoveNullUtil {
     	/**
       * 移除map中空key或者value空值
       *
       * @param map
       */
     	public static void removeNullEntry(Map map) {
      		removeNullKey(map);
      		removeNullValue(map);
      	}
     	/**
       * 移除map的空key
       *
       * @param map
       * @return
       */
     	public static void removeNullKey(Map map) {
      		Set set = map.keySet();
     		for (Iterator iterator = set.iterator(); iterator.hasNext();) {
     			Object obj = (Object) iterator.next();
      			remove(obj, iterator);
      		}
      	}
     	/**
       * 移除map中的value空值
       *
       * @param map
       * @return
       */
     	public static void removeNullValue(Map map) {
      		Set set = map.keySet();
     		for (Iterator iterator = set.iterator(); iterator.hasNext();) {
     			Object obj = (Object) iterator.next();
     			Object value = (Object) map.get(obj);
      			remove(value, iterator);
      		}
      	}
     	/**
       * Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁。 Iterator
       * 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,
       * 所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出
       * java.util.ConcurrentModificationException 异常。 所以 Iterator
       * 在工作的时候是不允许被迭代的对象被改变的。 但你可以使用 Iterator 本身的方法 remove() 来删除对象,
       * Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。
       *
       * @param obj
       * @param iterator
       */
     	private static void remove(Object obj, Iterator iterator) {
     		if (obj instanceof String) {
     			String str = (String) obj;
     			if (StringUtil.isNull(str)) {
      iterator.remove();
      			}
      		} else if (obj instanceof Collection) {
      			Collection col = (Collection) obj;
     			if (col == null || col.isEmpty()) {
      iterator.remove();
      			}
      		} else if (obj instanceof Map) {
      			Map temp = (Map) obj;
     			if (temp == null || temp.isEmpty()) {
      iterator.remove();
      			}
      		} else if (obj instanceof Object[]) {
     			Object[] array = (Object[]) obj;
     			if (array == null || array.length <= 0) {
      iterator.remove();
      			}
      		} else {
     			if (obj == null) {
      iterator.remove();
      			}
      		}
      	}
     	public static void main(String[] args) {
      		Map map = new HashMap();
      		map.put(1, "第一个值是数字");
      		map.put("2", "第2个值是字符串");
      		map.put(new String[] { "1", "2" }, "第3个值是数组");
      		map.put(new ArrayList(), "第4个值是List");
      		map.put(new HashMap(), "Map 无值");
      		map.put("5", "第5个");
      		map.put("6", null);
      		map.put("asd", "asdasd");
      		map.put("7", "");
      		map.put("8", " ");
      		System.out.println(map);
      		MapRemoveNullUtil.removeNullKey(map);
      		System.out.println();
      		System.out.println(map);
      		MapRemoveNullUtil.removeNullValue(map);
      		System.out.println();
      		System.out.println(map);
      	}
      }
  
 

 四、MD5Util md5 加密工具类


      package com.devframe.common.util;
      import java.security.MessageDigest;
      import java.security.NoSuchAlgorithmException;
      /**
       * @ClassName: MD5Util
       * @Description: MD5加密工具类
       * @author DuanZhaoXu
       * @date 2018年3月13日 上午9::15:25
       *
       */
      public class MD5Util {
     	private MD5Util() {
      	}
     	public static String getEncryption(String originString) {
     		String result = "";
     		try {
     			if (originString != null) {
      try {
      // 指定加密的方式为MD5
       MessageDigest md = MessageDigest.getInstance("MD5");
      // 进行加密运算
       byte bytes[] = md.digest(originString.getBytes("ISO8859-1"));
      for (int i = 0; i < bytes.length; i++) {
      // 将整数转换成十六进制形式的字符串 这里与0xff进行与运算的原因是保证转换结果为32位
      String str = Integer.toHexString(bytes[i] & 0xFF);
      if (str.length() == 1) {
       str += "F";
       }
       result += str;
       }
       } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
       }
      			}
      		} catch (Exception e) {
      			Log.error(e);
      		}
     		return result;
      	}
     	public static void main(String[] args) {
     		String aa = MD5Util.getEncryption("12345");
      		System.out.println(aa);
      	}
      }
  
 

五 、Properties  工具类 


      package com.devframe.common.util;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.net.URL;
      import java.util.Properties;
      public class PropertyUtil {
      private static final Properties PROP = new Properties();
      /**
       * 设置配置文件的路径
       */
      private static final String PATH = "/config.properties";
     	/**
       * 读取配置文件的内容(key,value)
       *
       * @param key key
       * @return key对应的value
       */
      public static String get(String key) {
     		if (PROP.isEmpty()) {
       FileInputStream in = null;
       InputStreamReader reader = null;
      try {
       URL url = PropertyUtil.class.getResource(PATH);
       in = new FileInputStream(url.getPath());
       reader = new InputStreamReader(in, "utf-8");
       PROP.load(reader);
       } catch (IOException e) {
       Log.error(e);
       } finally {
      if (reader != null) {
      try {
       reader.close();
       in.close();
       } catch (IOException e) {
       Log.error(e);
       }
       }
      			}
      		}
     		return PROP.getProperty(key);
      	}
      }
  
 

六 、WinRarUtil   调用WinRAR.exe 解压rar文件工具类


      package com.devframe.common.util;
      import java.io.File;
      /**
       * 调用WinRAR.exe 解压rar文件
       * @ClassName: WinRarUtil
       * @Description: WinRarUtil
       * @author DuanZhaoXu
       * @date 2018年9月15日下午7:21:19
       */
      public class WinRarUtil {
      //服务器需要安装winrar
      public static final String winrarPath = "C://Program Files//WinRAR//WinRAR.exe";
      public static boolean unrar(String rarFile, String target) {
      boolean bool = false;
       File f=new File(rarFile);
      if(!f.exists()){
      return false;
       }
      String cmd = winrarPath + " X " + f.getPath() + " "+target;
      try {
       Process proc = Runtime.getRuntime().exec(cmd);
      if (proc.waitFor() != 0) {
      if (proc.exitValue() == 0) {
      bool = false;
       }
       } else {
      bool = true;
       }
       } catch (Exception e) {
       e.printStackTrace();
       }
      return bool;
       }
     	public static void main(String[] args) {
       WinRarUtil.unrar("C:\\resultdata\\save\\devallinone.rar","C:\\resultdata\\save");
      	}
      }
  
 

七、 zip4jUtil   解压压缩 zip 文件工具类


      package com.devframe.common.util;
      import java.io.File;
      import java.util.ArrayList;
      import java.util.Date;
      import java.util.HashMap;
      import java.util.List;
      import java.util.Map;
      import org.apache.commons.io.FileUtils;
      import org.apache.commons.lang3.StringUtils;
      import com.devframe.common.exception.DevFrameException;
      import net.lingala.zip4j.core.ZipFile;
      import net.lingala.zip4j.exception.ZipException;
      import net.lingala.zip4j.model.ZipParameters;
      import net.lingala.zip4j.util.Zip4jConstants;
      /**
       * Created by wzj on 2017/11/27.
       */
      public class Zip4jUtil {
     	public static void main(String[] args) {
     		try {
     			// zip("F:\\测试1", "F:\\测试1.zip", null);
     			// long time = System.currentTimeMillis();
     			// unZip("D:\\globalPathPlanning_v1.11_java.zip","D:\\globalPathPlanning_v1.11_java",null);
     			// long time2 = System.currentTimeMillis();
     			// System.out.println(time2 - time);
     			// ZipFile zipFile = new ZipFile("F:\\HEB_Test1.zip");
      			List<Map<String, Object>> result = getZipTiffFiles("C:\\resultdata\\save\\test2.zip", "C:\\resultdata\\save\\", "txt");
     			for (Map<String, Object> map : result) {
       System.out.println("文件名称:" + map.get("fileName") + "<>" + "上传时间:" + map.get("uploadTime"));
      			}
      		} catch (Exception e) {
      			e.printStackTrace();
      		}
      	}
     	/**
       * 解压并获取 zip 文件里面的文件 名称 路径 和 上传时间
       *
       * @param srcFile
       * @return List<Map<String, Object>>
       * @throws ZipException
       */
     	public static List<Map<String, Object>> getZipTiffFiles(String srcFile, String dest, String type)
      			throws ZipException {
      		File file = new File(srcFile);
     		if (!file.exists()) {
     			throw new DevFrameException("文件不存在");
      		}
     		// 文件名称带有.zip后缀
     		String fileName = file.getName();
     		// 文件名称不带zip后缀
     		String fileNameNoZip = fileName.substring(0, file.getName().lastIndexOf("."));
     		// 解压
      		unZip(srcFile, dest);
     		// 解压之后的文件夹
      		File file2 = new File(dest + fileNameNoZip);
     		String uploadTime = DateUtil.date2String(new Date(), DateUtil.DATE_FORMAT);
      		List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
     		if(file2!=null) {
      		result = recursionGetTifFiles(result, type, uploadTime, file2);
      		}
      		FileUtils.deleteQuietly(file);
     		return result;
      	}
     	public static List<Map<String, Object>> recursionGetTifFiles(List<Map<String, Object>> result, String type,
     			String uploadTime, File file) {
      		File[] subFiles = file.listFiles();
     		if (subFiles != null && subFiles.length > 0) {
     			for (File subFile : subFiles) {
      String fileName = subFile.getName();
      String filePath = subFile.getPath();
      if (subFile.isFile()) {
      if (StringUtils.isBlank(type)) {
       result = add(result, fileName, filePath, uploadTime);
       } else {
      if (fileName.endsWith("." + type)) {
       result = add(result, fileName, filePath, uploadTime);
       }
       }
       } else if (subFile.isDirectory()) {
       result = recursionGetTifFiles(result, type, uploadTime, subFile);
       }
      			}
      		}
     		return result;
      	}
     	public static List<Map<String, Object>> add(List<Map<String, Object>> result, String fileName, String filePath,
     			String uploadTime) {
     		Map<String, Object> map = new HashMap<String, Object>();
      		map.put("name", fileName);
      		map.put("path", filePath);
      		map.put("updateTime", uploadTime);
      		result.add(map);
     		return result;
      	}
     	/**
       * 压缩(无需密码)
       *
       * @param srcFile
       * @param dest
       * @throws ZipException
       */
     	public static void zip(String srcFile, String dest) throws ZipException {
      		zip(srcFile, dest, null);
      	}
     	/**
       * 压缩
       *
       * @param srcFile 源目录
       * @param dest 要压缩的目录
       * @param passwd 密码 不是必填
       * @throws ZipException 异常
       */
     	public static void zip(String srcFile, String dest, String passwd) throws ZipException {
      		File srcfile = new File(srcFile);
     		// 创建目标文件
     		String destname = buildDestFileName(srcfile, dest);
      		ZipParameters par = new ZipParameters();
      // 压缩级别
      // static final int COMP_STORE = 0;(仅打包,不压缩) (对应好压的存储) 
      // static final int COMP_DEFLATE = 8;(默认) (对应好压的标准) 
      // static final int COMP_AES_ENC = 99;
      		par.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
      // 压缩等级
      // static final int DEFLATE_LEVEL_FASTEST = 1;
      // static final int DEFLATE_LEVEL_FAST = 3;
      // static final int DEFLATE_LEVEL_NORMAL = 5;
      // static final int DEFLATE_LEVEL_MAXIMUM = 7;
      // static final int DEFLATE_LEVEL_ULTRA = 9; 
      		par.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
     		if (passwd != null) {
      			par.setEncryptFiles(true);
     			// 设置加密方式为0, 默认 为-1,没有加密方式会报错
      			par.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
      			par.setPassword(passwd.toCharArray());
      		}
      		ZipFile zipfile = new ZipFile(destname);
     		if (srcfile.isDirectory()) {
      			zipfile.addFolder(srcfile, par);
      		} else {
      			zipfile.addFile(srcfile, par);
      		}
      	}
     	/**
       * @param zipFile
       * @param dest
       * @throws ZipException
       */
     	public static void unZip(String zipFile, String dest) throws ZipException {
      		unZip(zipFile, dest, null);
      	}
     	/**
       * 解压
       *
       * @param zipfile 压缩包文件
       * @param dest 目标文件
       * @param passwd 密码
       * @throws ZipException 抛出异常
       */
     	public static void unZip(String zipfile, String dest, String passwd) throws ZipException {
      		ZipFile zfile = new ZipFile(zipfile);
      		zfile.setFileNameCharset("GBK");// 在GBK系统中需要设置utf-8,windows系统设置GBK
     		if (!zfile.isValidZipFile()) {
     			throw new ZipException("压缩文件不合法,可能已经损坏!");
      		}
      // File file = new File(dest);
      // if (file.isDirectory() && !file.exists())
      // {
      // file.mkdirs();
      // }
     		if (zfile.isEncrypted()) {
      			zfile.setPassword(passwd.toCharArray());
      		}
      		zfile.extractAll(dest);
      	}
     	public static String buildDestFileName(File srcfile, String dest) {
     		if (dest == null) {
     			if (srcfile.isDirectory()) {
       dest = srcfile.getParent() + File.separator + srcfile.getName() + ".zip";
      			} else {
      String filename = srcfile.getName().substring(0, srcfile.getName().lastIndexOf("."));
       dest = srcfile.getParent() + File.separator + filename + ".zip";
      			}
      		} else {
      			createPath(dest);// 路径的创建
     			if (dest.endsWith(File.separator)) {
      String filename = "";
      if (srcfile.isDirectory()) {
       filename = srcfile.getName();
       } else {
       filename = srcfile.getName().substring(0, srcfile.getName().lastIndexOf("."));
       }
       dest += filename + ".zip";
      			}
      		}
     		return dest;
      	}
     	private static void createPath(String dest) {
      		File destDir = null;
     		if (dest.endsWith(File.separator)) {
      			destDir = new File(dest);// 给出的是路径时
      		} else {
      			destDir = new File(dest.substring(0, dest.lastIndexOf(File.separator)));
      		}
     		if (!destDir.exists()) {
      			destDir.mkdirs();
      		}
      	}
      }
  
 

 

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/83343038

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。