为什么找不到文件即时消息,因为文件在那里

时间:2019-04-17 20:24:55

标签: java filenotfoundexception

我读了一个由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 个答案:

答案 0 :(得分:2)

chooser.getSelectedFile().getName()返回文件的名称。您需要获取文件的完整路径才能打开它。

改为使用chooser.getSelectedFile().getAbsolutePath()

答案 1 :(得分:2)

如上所述,getName()返回文件名,而不是路径。
如果要通过Path打开文件,可以使用toPath()的{​​{1}}功能:

File

答案 2 :(得分:1)

¿ALTER TRIGGER trigger_example ON dbo.information INSTEAD OF INSERT AS DECLARE @surname varchar(30) select @surname = Person_Job FROM inserted IF(@surname = 'Enderson') BEGIN PRINT 'The person with this record already exists in the list.' END ELSE BEGIN INSERT INTO personel.dbo.information(Person_id,Person_FirstName,Person_LastName,Person_Salary,Person_Job) SELECT Person_id,Person_FirstName,Person_LastName,Person_Salary,Person_Job FROM inserted END GO 是什么,它是文件吗?在filetoopen行中,您仅告诉chooser.getSelectedFile().getName()仅获取文件名,应尝试使用JFileChooser而不是getAbsolutePath()。并且也将getName()更改为chooser.showOpenDialog(null);。希望对您有帮助。