use*_*701 2 java hash url-shortener
我有一个文件缓存,文件是从不同的URL下载的。我想按文件名保存每个文件。这些名称可能会很长,而且我使用的是FAT32文件系统的设备-因此,这些长名称在我用尽实际磁盘空间之前就已经消耗了资源。
我正在寻找一种缩短文件名的方法,已经获得了对字符串进行哈希处理的建议。但是我不确定哈希是否保证对于两个不同的字符串是唯一的。如果两个散列网址具有相同的散列值,而我不小心提取了错误的图像,那将是很糟糕的。
谢谢
您可以为每个URL 生成一个UUID并将其用作文件名。
UUID是唯一的(或“实际上是唯一的”),长度为36个字符,因此我猜文件名不会有问题。
从版本5开始,JDK附带了一个用于生成UUID的类(java.util.UUID)。如果有办法将它们与URL关联,则可以使用随机生成的UUID,也可以使用基于名称的UUID。基于名称的UUID始终相同,因此以下情况始终成立:
String url = ...
UUID urlUuid = UUID.nameUUIDFromBytes(url.getBytes);
assertTrue(urlUuid.equals(UUID.nameUUIDFromBytes(url.getBytes)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3519 次 |
最近记录: |