Неверный путь к файлу, но только если я создаю имя файла с полем - PullRequest
0 голосов
/ 16 октября 2019

Следующее дает мне FileNotFoundException: Invalid file path

String fileName = "folder/file" + "." + this.ext;
try {
  File file = new File(fileName);
} catch(Exception e){
}

, где this.ext ранее был установлен в "txt"

После игры я обнаружил, что это прекрасно работает.

String ext = "txt";
String fileName = "folder/file" + "." + ext;
try {
  File file = new File(fileName);
} catch(Exception e){
}

Почему я не могу использовать поле?

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Нет причины, по которой вы не можете использовать поле, например this.ext. Если вы поставите точку отладки на следующую строку, вы обнаружите, что this.ext не установлен на "txt"

String fileName = "folder/file" + "." + this.ext;

Если вы не знакомы с отладчиком, просто поставьте следующую строку передвыше линии, и вы сможете найти проблему:

System.out.println("this.ext="+this.ext);
0 голосов
/ 16 октября 2019

После просмотра в отладчике похоже, что мое поле имело значение "\ 0 \ 0 \ 0 \ 0 \ 0txt" (т. Е. NUL ascii char).

Java видит "\ 0" какпустая строка, так что мои операторы println не показывали мне проблему.

Должно быть, мне впервые понадобилось использовать отладчик за 4 года универа!

...