zoukankan      html  css  js  c++  java
  • Java中如何创建一个确保唯一的名字,文件名

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

    本篇博客要讲的有,如何创建一个唯一的文件名,创建一个唯一的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位甚至更多的随机数等

      就是自定义规则,让概率变得更小!!!!!!!!!

  • 相关阅读:
    关于JQuery的autocomplete1.11.4版本插件的使用心得
    BUG:ie678 使用jQuery设置页面标题
    BUG:ie8不支持indexOf()
    【转】使用@import和link导入样式
    【转】css3 media媒体查询器用法总结
    【转】css hack
    【转】移动平台WEB前端开发技巧汇总
    json格式与javascript对象字面量和数组对象的区别
    窗口和元素的大小:offset client scroll
    sharepoint2013 新建母板页 新建页面布局 关联母板页和页面布局
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/9308941.html
Copyright © 2011-2022 走看看