winflex:
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();
}
}
O resultado esperado é:
true
true
mas, na verdade, o resultado é:
false
true
O arquivo D: \ a.log é realmente existe eo caminho está correto, a versão JDK 1.8.0_11 é, eo sistema operacional é win10
Como entender isso ??
Erwin Bolwidt:
A corda "D:\\a.log"
no interior do main
método tem 9 caracteres, a um no isFile
método tem 8 caracteres.
A um dentro do main
método começa com invisível de caracteres Unicode U + 202A ( "LEFT-TO-RIGHT EMBEDDING").
Substitua o interior corda main
com o interior corda isFile
ou excluir o primeiro personagem invisível da corda no main
.
(Nota: Isto mostra o benefício real do cópia-colar seu código real, como o problema está no código que você colou na sua pergunta acima)