------------ 吾亦无他, 唯手熟尔, 谦卑若愚, 好学若饥 -------------
本篇博客要讲的有, 如何创建一个唯一的文件名, 创建一个唯一的 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 位甚至更多的随机数等
就是自定义规则, 让概率变得更小!!!!!!!!!
来源: https://www.cnblogs.com/DawnCHENXI/p/9308941.html