[原创]UUID的介绍和使用
最近项目用要在服务器上保存从Android终端传过来的图片,公司以前的项目中使用的是使用时间戳的方式给图片命名,这样就存在一个问题,如果并发够大的话可能会两张图片结果只保存了一张,而这种情况使用UUID代替是一个不错的选择.
- 什么是UUID?
A universally unique identifier (UUID) is an identifier standard used in software construction. A UUID is simply a 128-bit value. The meaning of each bit is defined by any of several variants.
UUD的全称是Universally unique identifier
,硬翻的话就是生成全宇宙都不可能重复的字符串序列.它的使用场景是在一些需要唯一标识的地方,曾经我们有一个项目的数据库使用的ID主键就是靠UUID生成的.
2. 如何在Java中使用UUID?
Java的标准类库rt.jar
中已经包含了一个UUID的实现,使用起来也特别方便,下面的一个示例可以产生一个UUID.
@Test
public void testUUID() throws URISyntaxException {
String path = this.getClass().getResource("/").toURI().getPath().replace("/SomeWebPrj/WEB-INF/classes", "") + "img_upload_sample/";
String fileName = UUID.randomUUID().toString();
String fullName = path + fileName + ".jpeg";
System.out.println("uuid:" + fileName);
}
运行一下,就能看到生成的UUID了:
uuid:e6bf5b96-445f-42dd-8872-dc28078a5de8
在获取类的路径时有时候会遇到字符串中包含
Programe%20Files
这样的错误的位置,上面代码中使用使用.toURI().getPath()
就是为了解决这个问题,这是Java的bug,在Java的官方论坛中提到过.