java判断文件名称重复
2023-01-10阅读(343)
问:java如何判断俩个文件是否相同的?
- 答:分别打开2个文件,读取,按字节一个个对比,都一致就判断为相同。
- 答:一楼的方法有点浪费时间。
给你一个建议吧,,文件采用固定的格式组织,然后读固定的位置的值,如果一样的话你可以认为相等。。。。
就像如果你要比较 两个 自定义java 对象是否相等,必须覆盖 equals() 方法,,自己定义比较规则。 - 答:计算两文件的MD5值,如果MD5值一致表示一样。
public static String getFileMD5(File file) {
if (!file.isFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = new byte[1024];
int len;
try {
digest = MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
}
问:java编程:再上传文件的时候,怎样判断所上传到的文件夹里有没有跟上传文件同名的文件,如果有的话需要在
- 答:String[] fileName =zipEntryName.split("\\."); // 文件名
outPath = (descDir+"/"+zipEntryName).replaceAll("\\*", "/");//存储路径
for(int i=1;i<999999999;i++){ //
File files = new File(outPath);
if(files.exists()){
outPath = (descDir+"/"+fileName[0]+"("+i+")."+fileName[1]).replaceAll("\\*", "/");
} else{
break;
}
}
//写入文件
InputStream in = zip.getInputStream(entry);
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close(); } - 答:一般的做法是 上传的时候 文件名会加上日期什么的 不会让他重复
- 答:这样判断对服务器的压力是比较大的,比较好的做法是上传的时候给文件名加上时间后缀或者唯一码后缀。
问:怎么遍历两个文件夹中的文件名是否相同(不是内容),如果有相同的输出到新的文件夹。JAVA代码。
- 答:不会输入进去的 文件夹相同的话 后进去的就提示 是否代替 怎么会让你分辨呢 你确定是文件夹不是文件么 文件格式不同 用格式辨别
- 答:这个不用遍历吧,File类里有一个方法可以得到某文件夹的文件集合