public class Test {
public static void isFile() {
System.out.println(new File("D:\\a.log").isFile());
}
public static void main(String[] args) {
System.out.println(new File("D:\\a.log").isFile());
isFile();
}
}
预期结果是:
true
true
但实际上结果是:
false
true
文件D:\ a.log实际上存在并且路径正确,jdk版本是1.8.0_11,操作系统是win10
如何理解这一点?
答案 0 :(得分:11)
"D:\\a.log"
方法内的字符串main
有9个字符,isFile
方法中的字符串有8个字符。
main
方法中的一个以不可见的Unicode字符U + 202A(“从左向右嵌入”)开头。
将main
中的字符串替换为isFile
中的字符串,或从main
的字符串中删除第一个不可见的字符。
(注意:这表明复制粘贴您的实际代码的真正好处,因为问题出在上面问题中粘贴的代码中)