Почему открываемый файл не найден, потому что файл там - PullRequest
2 голосов
/ 17 апреля 2019

Я прочитал в файле, выбранном JFileChooser, что означает, что файл существует, и я знаю, что он есть, но я все еще получаю FileNotFoundException.

Я жестко прописал путь к этому файлу, и он отлично работает.


JFileChooser chooser = new JFileChooser();
int rueckgabeWert = chooser.showOpenDialog(null);

if (rueckgabeWert == JFileChooser.APPROVE_OPTION)
{
  filetoopen = chooser.getSelectedFile().getName();
  Path path = Paths.get(filetoopen);
  List<String> allLines = null;
  try
  {
    allLines = Files.readAllLines(path, StandardCharsets.UTF_8);
  }
  catch (IOException e1)
  {
    e1.printStackTrace();
  }

  for (int i = 0; i < allLines.size(); i++)
  {
    System.out.println(allLines.get(i));
  }

}

Как я могу получить файл, чтобы открыть файл правильно?

Ответы [ 3 ]

2 голосов
/ 17 апреля 2019

Как уже говорилось, getName() возвращает имя файла, а не путь.
Если вы хотите открыть файл с помощью Path, вы можете использовать toPath() функцию File:

...
File filetoopen = chooser.getSelectedFile();
List<String> allLines = null;
try {
    allLines = Files.readAllLines(filetoopen.toPath(), StandardCharsets.UTF_8);
} catch (IOException e1) {                          
    e1.printStackTrace();
}
...
2 голосов
/ 17 апреля 2019

chooser.getSelectedFile().getName() возвращает имя файла.Вам нужно получить полный путь к файлу, чтобы иметь возможность его открыть.

Используйте chooser.getSelectedFile().getAbsolutePath() вместо.

1 голос
/ 17 апреля 2019

¿Что такое filetoopen, это файл? В строке chooser.getSelectedFile().getName() вы только указываете JFileChooser, что нужно просто получить имя файла, вы должны попробовать getAbsolutePath() вместо getName(). А также измените chooser.showOpenDialog(null); на chooser.showOpenDialog(chooser);. Я надеюсь, что это поможет вам.

...