Java,如何检查文件是否存在
我有这个小代码Java,如何检查文件是否存在,java,file,Java,File,我有这个小代码 File source; if ( !source.exists() ) { source = new File("instances/student"+student.getStudentID()+".data"); } 问题是,源未初始化。既然关键是要检查它是否存在,我该如何避免这种情况?创建一个文件对象 File source = new File(...); 您使用的构造函数取决于您希望如何定位文件。一个简单的路径字符串就足够了
File source;
if ( !source.exists() ) {
source = new File("instances/student"+student.getStudentID()+".data");
}
问题是,源未初始化。既然关键是要检查它是否存在,我该如何避免这种情况?创建一个
文件
对象
File source = new File(...);
您使用的构造函数取决于您希望如何定位文件。一个简单的路径字符串就足够了
编辑:刚刚意识到您的困惑的根源可能是您认为创建文件
对象将尝试定位文件或在文件系统上创建它。事实并非如此。仅仅调用新文件(…)
不会检查它的存在或尝试创建它。文件对象只是文件系统中路径的抽象。它也可以是一个目录。您可以执行以下操作:
File f = new File(somepathhere);
if ( !f.exists() ) {
f = new File("instances/student"+student.getStudentID()+".data");
}
或者您可以检查f.isFile()您是否有误解。创建文件不会在文件系统上创建文件。文件对象实际上只表示文件名。如果要查看文件是否存在,请创建一个具有适当名称的文件并选中
exists()
但是,如果你想覆盖或附加到一个文件,你甚至不需要所有这些。只要创建一个
新的FileOutputStream(…)
,如果要追加,则将append
参数设置为true
。不需要事先检查,事实上这不仅仅是浪费时间。等等,你的意思是如果我创建新文件(…),它不会覆盖现有文件?@vedran。它不会对文件系统做任何事情。它只是一个Java对象。只有当您开始调用诸如exists()
、delete()
或rename to
之类的方法时,才能访问实际文件。当您想要更改内容时,您需要类似于文件编写器的东西。要创建一个不存在的文件,您需要在文件
对象上调用createNewFile()
。检查数据库以获取准确信息。