Java中如何創建一個確保唯一的名字,文件名
阿新 • • 發佈:2018-07-14
不同 clas 什麽 滿足 解釋 自己的 pri 規則 dem
------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑-------------
本篇博客要講的有,如何創建一個唯一的文件名,創建一個唯一的String字符串
為什麽要創建唯一呢?再很多情況下,比如文件上傳,文件名要不一致,否則就覆蓋掉了,如何不一致,這就是本篇博客要講的內容
註:直接采用隨機數是愚蠢的做法,它在很大概率上會有相同的數字出現
方式一:時間戳
推薦指數:★
原因:時間戳在高並發情況下有可能會出現相同
解決方案:再拼隨機數,註意拼接的時候別讓倆個做加法運算 時間戳變量+""+隨機數變量
//時間戳第一種 System.out.println(new Date().getTime()); //時間戳第二種 System.out.println(System.currentTimeMillis());
隨機數:
//生成六位隨機數 System.out.println((int)((Math.random()*9+1)*100000));
方式二:微秒數
推薦指數:★★
原因:它比時間戳還要細,控制的力度更強
也可以加隨機數或者自己拼接自己的規則
//微秒數 System.out.println(System.nanoTime());
方式三:UUID
推薦指數:★★★
原因:他是java.util包下的一個可以產生不同的字符變量的一個類,它的功能很強大
//采用UUID的方式 import java.util.UUID; UUID randomUUID = UUID.randomUUID(); System.out.println(randomUUID);
方式四:在前三種基礎上自定義規則
推薦指數:★ ★★★★
原因:在日常中上面三種都足以滿足自己的小Demo,小項目使用,但是在成熟大項目中,或許有些不夠看,所以,我講第四種
思路:文件名不是一個字符串嘛,做拼接的三面三種方式任意一種的時候,可以自己加入自己的規則,比如上傳者的id,比如你從那塊上傳的解釋,甚至加入8位甚至更多的隨機數等
就是自定義規則,讓概率變得更小!!!!!!!!!
Java中如何創建一個確保唯一的名字,文件名