目录分离算法:
private String makePath(String filename, String savePath) {
//得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址
int hashcode = filename.hashCode();
//得到名为1到16的下及文件夹
int dir1 = hashcode & 0xf;
System.err.println(“多少位”+dir1);
//得到名为1到16的下下及文件夹
int dir2 = (hashcode & 0xf0) >> 4;
System.err.println(“多少位”+dir2);
//构造新的保存目录
String dir = savePath + “\” + dir1 + “\” + dir2;
//File既可以代表文件也可以代表目录
File file = new File(dir);
if (!file.exists()) {
file.mkdirs();
}
return dir;
}
目录分离的算法的分析:
- 获得文件的唯一文件名:
- 获得到唯一文件名的hashCode().
- 哈希值是一个目录分离的算法的分析:
- 获得文件的唯一文件名:
- 获得到唯一文件名的hashCode().
- 哈希值是一个int类型的值.int类型是4个字节.每个字节8位.(32位).
- 哈希值&0xf;得到一个值.用这个值作为一级路径.
- 哈希值右移4位&0xf;得到一个值.用这个值作为二级路径.int类型的值.int类型是4个字节.每个字节8位. (32位).
- 哈希值&0xf;得到一个值.用这个值作为一级路径.
- 哈希值右移4位&0xf;得到一个值.用这个值作为二级路径.