1. 程式人生 > >Java中如何創建一個確保唯一的名字,文件名

Java中如何創建一個確保唯一的名字,文件名

不同 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中如何創建一個確保唯一的名字,文件名