Java中如何创建一个确保唯一的名字,文件名
Posted 晨曦Dawn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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位甚至更多的随机数等
就是自定义规则,让概率变得更小!!!!!!!!!
以上是关于Java中如何创建一个确保唯一的名字,文件名的主要内容,如果未能解决你的问题,请参考以下文章