File.isFile () devuelve resultado incorrecto?

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();
  }
}

El resultado esperado es:

true
true

pero en realidad el resultado es:

false
true

El archivo D: \ a.log es en realidad existe y la ruta es correcta, la versión JDK 1.8.0_11 es, y el sistema operativo es win10

¿Cómo entender esto ??

Erwin Bolwidt:

La cadena "‪D:\\a.log"dentro del mainmétodo tiene 9 caracteres, el uno en el isFilemétodo tiene 8 caracteres.

El uno dentro del mainmétodo comienza con invisibles caracteres Unicode U + 202A ( "IZQUIERDA A DERECHA EMBEDDING").

Vuelva a colocar el interior de cadena maincon el interior de cadena isFile, o eliminar el primer carácter invisible desde la cadena en main.

(Nota: Esto muestra el beneficio real de copiar y pegar el código real, ya que el problema está en el código que ha pegado en su pregunta anterior)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=183727&siteId=1
Recomendado
Clasificación