我不了解你们,但是至少我期望在下面的代码中f1等于f2,但显然不是这样!您对此有何看法?看来我必须编写自己的equals方法来支持它,对吗?
import java.io.*;
public class FileEquals
{
public static void main(String[] args)
{
File f1 = new File("./hello.txt");
File f2 = new File("hello.txt");
System.out.println("f1: " + f1.getName());
System.out.println("f2: " + f2.getName());
System.out.println("f1.equals(f2) returns " + f1.equals(f2));
System.out.println("f1.compareTo(f2) returns " + f1.compareTo(f2));
}
}
最佳答案
不,不是这样。因为equals在比较绝对路径的相等性(在您的情况下,它类似于:
some-project\.\hello.txt
some-project\hello.txt
因此,它们自然是不同的。
可能是。但是首先,您必须知道要比较什么?仅路径名?如果是,请按照以下方式比较其规范路径:
f1.getCanonicalPath().equals(f2.getCanonicalPath())
但是,如果要比较两个不同文件的内容,则是,您应该编写自己的方法-或只是从Internet上的某个地方复制即可。
关于java - Java文件等于,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8930859/