Java读取文件,如果不存在则创建它

时间:2011-03-28 20:20:54

标签: java file text

这是我的代码

public String path;
public String fileName;
public static void readData() throws IOException{
    try {
        path="myPath"
        fileName="myFileName";
        fstream = new FileInputStream(path+fileName);
        br = new BufferedReader(new InputStreamReader(fstream));
        //do something...//
        }
        br.close();
    } catch (FileNotFoundException ex) {
        JOptionPane.showMessageDialog(null, "Reading file error");
        Logger.getLogger(LeggiDaFile.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我想知道如何检查fstream是否存在。如果它不存在,则必须创建新文件。我怎样才能做到这一点? 感谢

5 个答案:

答案 0 :(得分:6)

这是一个可能的解决方案:

public static void readData() throws IOException
{
    File file = new File(path, filename);

    if (!file.isFile() && !file.createNewFile())
    {
        throw new IOException("Error creating new file: " + file.getAbsolutePath());
    }

    BufferedReader r = new BufferedReader(new FileReader(file));

    try 
    {
        // read data
    }finally
    {
        r.close();
    }
}

答案 1 :(得分:2)

你的代码中缺少一些东西 - 有一个没有相应开口支撑的右括号。

但要回答您的问题,请首先创建File对象并使用exists(),然后createNewFile()如果exists()返回false。将File对象而不是文件名传递给FileInputStream构造函数。

顺便说一下,谷歌答案的时间比在这里输入你的问题要少。

答案 2 :(得分:1)

要检查filename中是否存在path文件,您可以使用new File(path, filename).exists()

如果指定的File的文件系统上存在文件或目录,则exists method将返回true。

要验证该文件是文件而不是目录,您可以使用isFile method

有关详细信息,请参阅javadoc for java.io.File

答案 3 :(得分:0)

if(new File("filename").exists())
   ...

它应该做你想要的。

答案 4 :(得分:-1)

您已经抓住了FileNotFoundException,这就是您知道您想要阅读的文件不存在的地方,您可以创建它。