这是我的代码
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是否存在。如果它不存在,则必须创建新文件。我怎样才能做到这一点? 感谢
答案 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
,这就是您知道您想要阅读的文件不存在的地方,您可以创建它。