如何检查java中是否存在文件
我在检查Java中是否存在文件时遇到了问题。然而,IF块似乎有效,而ELSE块似乎无效。请看,当文件存在时,它会提示一个框,上面写着“找到文件”。每当文件确实存在时,我的程序中就会出现这种情况,问题是当文件不存在时,我的控制台中就会出现大量错误。有人能告诉我什么是更简单和更简短的方法来编码我的问题吗?谢谢这是我的密码如何检查java中是否存在文件,java,if-statement,inputstream,bufferedreader,Java,If Statement,Inputstream,Bufferedreader,我在检查Java中是否存在文件时遇到了问题。然而,IF块似乎有效,而ELSE块似乎无效。请看,当文件存在时,它会提示一个框,上面写着“找到文件”。每当文件确实存在时,我的程序中就会出现这种情况,问题是当文件不存在时,我的控制台中就会出现大量错误。有人能告诉我什么是更简单和更简短的方法来编码我的问题吗?谢谢这是我的密码 public void actionPerformed(ActionEvent e) { BufferedReader br = null
public void actionPerformed(ActionEvent e) {
BufferedReader br = null;
File f = new File(textField.getText());
String path = new String("C:\\Users\\theBeard\\workspace\\LeapYear\\");
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(path+f));
if (f.exists())
{
JOptionPane.showMessageDialog(null, textField.getText()+" found" );
while ((sCurrentLine = br.readLine()) != null) {
textArea.append(sCurrentLine);
textArea.append(System.lineSeparator());
}
}
else
{
JOptionPane.showMessageDialog(null, textField.getText()+" not found" );
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (br != null)
{
br.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
String path=“C:\\path\\To\File\\Directory\\”;
字符串fileName=“NameOfFile.ext”;
文件f=新文件(路径、文件名);
如果(f.exists()){
//<现有文件的代码>
}否则{
//<文件代码不存在>
}
这一行有问题:
br = new BufferedReader(new FileReader(path+f));
文件
附加到字符串
,这没有意义。您应该将字符串
附加到字符串
,在本例中,textField.getText())
附加到路径
FileReader
的文档,如果文件不存在,此行将引发异常:FileNotFoundException
-如果命名文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开进行读取
这会导致程序到达catch
子句并打印异常堆栈跟踪。只有当f.exists()
返回true时,才应调用此行:
if (f.exists())
{
br = new BufferedReader(new FileReader(path + textField.getText()));
...
}
请看以下代码行:
br = new BufferedReader(new FileReader(path+f));
if (f.exists())
您正在尝试在检查文件是否存在之前打开该文件。因此,如果尝试打开它失败,并出现
FileNotFoundException
,则永远无法进行测试。您必须在检查文件是否存在后实例化BufferedReader
String path = new String("C:\\Users\\theBeard\\workspace\\LeapYear\\");
File f = new File(path + textField.getText());
...
if (f.exists())
{
br = new BufferedReader(new FileReader(f.getAbsolutePath())); // or br = new BufferedReader(f);
...
这是2015年;不再使用文件。使用JSR203,在这种情况下,
Files.exists()
。请解释您的答案,仅仅发布代码并不构成完整答案
String path = new String("C:\\Users\\theBeard\\workspace\\LeapYear\\");
File f = new File(path + textField.getText());
...
if (f.exists())
{
br = new BufferedReader(new FileReader(f.getAbsolutePath())); // or br = new BufferedReader(f);
...