为什么找不到打开的文件,因为文件在那里
Why is the File im opening not found because the File is there
我读入了一个由 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));
}
}
如何让文件正确打开文件?
chooser.getSelectedFile().getName()
returns 文件名。您需要获取文件的完整路径才能打开它。
改用chooser.getSelectedFile().getAbsolutePath()
。
如前所述,getName()
returns 文件名,而不是路径。
如果要通过Path
打开文件,可以使用File
的toPath()
函数:
...
File filetoopen = chooser.getSelectedFile();
List<String> allLines = null;
try {
allLines = Files.readAllLines(filetoopen.toPath(), StandardCharsets.UTF_8);
} catch (IOException e1) {
e1.printStackTrace();
}
...
¿什么是 filetoopen
,它是一个文件吗?通过行 chooser.getSelectedFile().getName()
你只是告诉 JFileChooser
只获取文件的名称,你应该尝试使用 getAbsolutePath()
而不是 getName()
。并将 chooser.showOpenDialog(null);
更改为 chooser.showOpenDialog(chooser);
。希望对你有帮助。
我读入了一个由 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));
}
}
如何让文件正确打开文件?
chooser.getSelectedFile().getName()
returns 文件名。您需要获取文件的完整路径才能打开它。
改用chooser.getSelectedFile().getAbsolutePath()
。
如前所述,getName()
returns 文件名,而不是路径。
如果要通过Path
打开文件,可以使用File
的toPath()
函数:
...
File filetoopen = chooser.getSelectedFile();
List<String> allLines = null;
try {
allLines = Files.readAllLines(filetoopen.toPath(), StandardCharsets.UTF_8);
} catch (IOException e1) {
e1.printStackTrace();
}
...
¿什么是 filetoopen
,它是一个文件吗?通过行 chooser.getSelectedFile().getName()
你只是告诉 JFileChooser
只获取文件的名称,你应该尝试使用 getAbsolutePath()
而不是 getName()
。并将 chooser.showOpenDialog(null);
更改为 chooser.showOpenDialog(chooser);
。希望对你有帮助。