繁体   English   中英

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

[英]Java read a file, if it doesn't exist create it

这是我的代码

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是否存在。 如果它不存在,则必须创建新文件。 我怎样才能做到这一点? 谢谢

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

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();
    }
}

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

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

顺便说一句,它会花费你更少的时间去谷歌答案,而不是在这里输入你的问题。

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

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

要验证文件是文件而不是目录,可以使用isFile方法

有关更多信息,请参阅java.io.Filejavadoc

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

它应该做你想要的。

您已经捕获了FileNotFoundException ,这是您知道您想要读取的文件不存在的地方,您可以创建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM