纯Java文件操作工具,支持文件、文件夹的复制、删除、移动

一、认识UUID

UUID

维基百科,自由的百科全书

通用唯一识别码 (Universally Unique Identifier, UUID) 是一个软件建构的标准,亦为自由软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。

UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 文件系统、LUKS 加密分区区、GNOME、KDE、Mac OS X 等等。另外我们也可以在 e2fsprogs 包中的 UUID 库找到实现。

[编辑] 定义

一组 UUID,系由一串 16 字节(亦称 16 字节,或 128 位)的16进位数字所构成,是故UUID理论上的总数为216 x 8=2128,约等于3.4 x 1038。也就是说若每奈秒产生1兆个UUID,要花100亿年才会将所有UUID用完。

UUID的标准类型包含32个16进位数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。示例;

550e8400-e29b-41d4-a716-446655440000

UUID 亦可刻意重复以表示同类。例如说微软的COM中,所有组件皆必须实现出IUnknown接口,方法是产生一个代表IUnknown的UUID。无论是程序试图访问组件中的IUnknown接口,或是实现IUnknown接口的组件,只要IUnknown一被使用,皆会被参考至同一个 ID:00000000-0000-0000-C000-000000000046。

[编辑] 随机UUID的重复机率

随机产生的UUID(例如说由java.util.UUID类产生的)的128个位中,有122个位是随机产生,4个位在此版本('Randomly generated UUID')被使用,还有2个在其变体('Leach-Salz')中被使用。利用生日悖论,可计算出两笔UUID拥有相同值的机率约为

以下是以x=2122计算出n笔UUID后产生碰撞的机率:

n 机率

68,719,476,736 = 236 0.0000000000000004 (4 x 10-16)

2,199,023,255,552 = 241 0.0000000000004 (4 x 10-13)

70,368,744,177,664 = 246 0.0000000004 (4 x 10-10)

与被陨石击中的机率比较的话,已知一个人每年被陨石击中的机率估计为170亿分之1[1],也就是说机率大约是0.00000000006 (6 x 10-11),等同于在一年内置立数十兆笔UUID并发生一次重复。换句话说,每秒产生10亿笔UUID,100年后只产生一次重复的机率是50%。如果地球上每个人都各有6亿笔UUID,发生一次重复的机率是50%。

产生重复UUID并造成错误的情况非常低,是故大可不必考虑此问题。

机率也与乱数产生器的品质有关。若要避免重复机率提高,必须要使用奠基于密码学上的假乱数产生器来生成值才行。

http://zh.wikipedia.org/zh-cn/UUID

时间: 2024-10-30 04:14:32

纯Java文件操作工具,支持文件、文件夹的复制、删除、移动的相关文章

好用的php程序编辑器(关键字带颜色,支持其他文件类型,如htm,java,c等)

程序|关键字 UltraEdit32加上一个wordfile(for php)很好用,wordfile其实是一个文本文件,其中设定了关键字.变量...的颜色,这样,php文件看起来很舒服.UltraEdit32和wordfile可以从www.ultraedit.com下载. wordfile的使用方法:1.在ultraedit中,选Advanced--Configuration--Syntax Highlighting,2.Full name path for 中选中wordfile3.重新启动

Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等

Asp.net(c#)中常用文件操作类封装 包括:移动 复制 删除 上传 下载等 using System; using System.Configuration; using System.Data; using System.IO; using System.Text; using System.Threading; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Ht

java文件操作工具类_java

最近为了修改大量收藏的美剧文件名,用swing写了个小工具,代码是文件处理部分,具体内容如下 package datei.steuern; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter

怎么用java显示ftp服务器上文件夹中的图片在jsp页面上?

问题描述 怎么用java显示ftp服务器上文件夹中的图片在jsp页面上? ftp在另一台windows上,访问jsp页面要读取并显示出ftp上的图片. ftp上的图片路径保存在数据库中,操作ftp的jar我选了apache的FtpClient. 现在的问题是,action获取到ftp上的文件后,是下载下来再读取成流输出到页面呢?还是直接从FTP获取成流输出到页面?如果有,求思路,最好有代码举例我不想ftp上的文件下载到部署环境上然后再输出到页面,想通过读取ftp的流直接显示到页面,页面关闭后流就

windows-如何用Java扫描Windows下的文件夹?

问题描述 如何用Java扫描Windows下的文件夹? 如何用Java扫描Windows下的文件夹以及文件夹下面的文件 解决方案 import java.io.File;/** * *自动扫描文件夹下的文件 *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库: */public class OutSql { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method

java项目中,本地文件夹内有DOM4J,可是在myEclipse中不显示

问题描述 java项目中,本地文件夹内有DOM4J,可是在myEclipse中不显示 java项目中,本地文件夹内有DOM4J,可是在myEclipse中不显示 解决方案 你把jar拷过来放在lib下,再add build path 解决方案二: 你是不是设置过滤器了,jar包都不显示啊 解决方案三: java project的jar包并非在lib中,而是在这个jre system library里面,引用外部包的话是右键点击他.....................(具体步骤省略,,) 解决

Java程序打开浏览器和文件夹

Java程序打开浏览器和文件夹 (1)打开网址 Java代码   //启用系统默认浏览器来打开网址.           try {               URI uri = new URI("file:///"+fileFullPath.replaceAll("\\\\", "/"));               Desktop.getDesktop().browse(uri);           } catch (URISyntax

需求-java web 能够实现整个文件夹的上传下载吗?

问题描述 java web 能够实现整个文件夹的上传下载吗? 需求要上传下载文件夹,我感觉貌似是不能,求大神解惑,求!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 如果要用java-web的话,个人感觉不可能,因为你的文件上传表单类型是file,只能选择文件. 但是如果要写的文件上传服务器的简单应用的话,是可以得使用FTPClient工具完成.类似文件上传工具FlashFXP软件的功能. 解决方案二: java web 实现上传下载 解决方案三: 没见过上传文

java包下的META-INF文件夹下的MANIFEST.MF文件有神马作用

问题描述 java包下的META-INF文件夹下的MANIFEST.MF文件有神马作用 java包下的META-INF文件夹下的MANIFEST.MF文件有神马作用 android客户端服务器java文件应该如何部署到tomcat 解决方案 MANIFEST.MF给出了配置信息. android客户端?你说的是服务器端吧.客户端应该打包成apk在手机上跑,部署到tomcat做什么?

java-为什么这段代码if里面的语句不会执行,ext.txt文件和该Java文件下同存在一个文件夹下

问题描述 为什么这段代码if里面的语句不会执行,ext.txt文件和该Java文件下同存在一个文件夹下 public static void main(String [] args){ File file=new File("ext.txt"); if(file.isFile()){ System.out.println("绝对路径:"+file.getAbsolutePath()); System.out.println("文件长度:"+fil