国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java利用時間格式生成唯一文件名的方法

2019-11-26 13:14:28
字體:
來源:轉載
供稿:網友

前言

有時候我們需要截圖,在要截圖時,有人用到了時間格式,但是時間格式中的:在文件名稱中是不被允許的字符,所以就會報錯,如何生成唯一的時間文件名:

示例代碼

package com.demo; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar; public class TimeString {   private String valueOfString(String str, int len) {    StringBuffer sb = new StringBuffer();    for (int i = 0; i < len - str.length(); i++) {      sb.append("0");    }    return (sb.length() == 0) ? (str) : (sb.toString() + str);  }     public String getDateFormat(){    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    return df.format(new Date());      }      public Date getDateFormat(String time){    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    try {      return df.parse(time);    } catch (ParseException e) {            e.printStackTrace();    }     return null;  }   private String getTimeString(Calendar calendar) {       StringBuffer sb = new StringBuffer();    sb.append(String.valueOf(calendar.get(Calendar.YEAR)))        .append(this.valueOfString(String.valueOf(calendar.get(Calendar.MONTH) + 1),2))     .append(this.valueOfString(String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)),2))     .append(this.valueOfString(String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)),2))     .append(this.valueOfString(String.valueOf(calendar.get(Calendar.MINUTE)),2))     .append(this.valueOfString(String.valueOf(calendar.get(Calendar.SECOND)),2))     .append(this.valueOfString(String.valueOf(calendar.get(Calendar.MILLISECOND)),3));        return sb.toString();  }      public String getTimeString(String time){    Calendar calendar = new GregorianCalendar();    calendar.setTime(this.getDateFormat(time));    return this.getTimeString(calendar);  }     public String getTimeString(){    Calendar calendar = new GregorianCalendar();    return this.getTimeString(calendar);  }     public static void main(String[] args) {    TimeString ts = new TimeString();    System.out.println(ts.getTimeString());    System.out.println(ts.getTimeString("2015-4-30 8:51:52"));  }}

雖然上面的getTimeString方法精確到了毫秒,但仍會有可能產生相同的文件名,導致覆蓋,所以,在生成文件名時判斷一下是否存在:

package com.demo; import java.io.File; public class Test16 {     public String getFileName(String path){    File file = new File(path);    if(file.exists()){      return this.getFileName(file.getParent()+File.separator+(new TimeString().getTimeString())+".png");    }    return path;  }     public static void main(String[] args) {    Test16 t = new Test16();    System.out.println(t.getFileName("D:/1.txt"));  } }

理論上來說,這種也是有可能產生相同的文件名的,這種在多線程中是有可能的,解決的辦法很簡單,自已動腦筋想想想去吧!

總結

以上就是關于JAVA中通過時間格式來生成唯一文件名的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 含山县| 红河县| 宁化县| 嘉禾县| 潼南县| 濮阳市| 固阳县| 礼泉县| 双牌县| 三穗县| 肇州县| 金平| 汉川市| 防城港市| 静宁县| 彰化县| 临夏市| 观塘区| 台南县| 铜陵市| 长兴县| 上高县| 丰镇市| 石河子市| 涞水县| 甘孜县| 芜湖市| 高州市| 渝北区| 湘乡市| 诸城市| 鄂温| 龙川县| 五指山市| 吴江市| 广宗县| 江陵县| 东乌珠穆沁旗| 通化县| 鹰潭市| 个旧市|