如何确定我想要读取的文件是否确实存在?

时间:2012-11-19 22:54:41

标签: java stream inputstream

我正在学习Java,我正在尝试编写一个可以从.ser文件中读取的程序,我已经使用writeTo()方法创建了该文件。

在我告诉程序从中读取文件之前,我想知道系统中是否存在给定文件。

我的代码如下所示:

public boolean readFromSerializedFile(String fileName){
    FileInputStream fileInStream = null;
    ObjectInputStream objectInStream = null;

    try{
        fileInStream = new FileInputStream(fileName);  
        objectInStream = new ObjectInputStream(fileInStream);

是否有一种简单的方法可以确定根目录中是否存在具有参数名称的文件(或指定的其他位置)?

5 个答案:

答案 0 :(得分:4)

您可以使用File.exists()方法。

假设您想知道文件abc.xml是否存在。以下代码说明了如何执行此操作。

final File file = new File ("abc.xml");
final boolean exists = file.exists ();
System.out.println ("abc.xml " + (exists ? "exists" : "does not exist"));

答案 1 :(得分:3)

其他人提到了File.exists,但是如果您正在学习Java并且可能使用Java SE 7,我建议使用新的NIO File API:

Files.exists(Paths.get(filename));

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#exists%28java.nio.file.Path,%20java.nio.file.LinkOption...%29

另请注意,Oracle的Java Tutorial对于学习标准Java API非常有用:

http://docs.oracle.com/javase/tutorial/

http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

http://docs.oracle.com/javase/tutorial/essential/io/check.html

答案 2 :(得分:1)

Using java.io.File
...
String path = "C:\test.txt";
File f = new File(path);
if(f.exists())

答案 3 :(得分:0)

您可以捕获java.io.FileNotFoundException,这将在您描述的案例场景中抛出。

答案 4 :(得分:0)

    FileReader br = new FileReader(file);

   if(br.ready())
    return;
   else
    System.exit(1);