如何检查文件是否存在并打开它?java如何检查文件是否存在并打开它?
if(file is found)
{
FileInputStream file = new FileInputStream("file");
}
如何检查文件是否存在并打开它?java如何检查文件是否存在并打开它?
if(file is found)
{
FileInputStream file = new FileInputStream("file");
}
File.isFile
会告诉你一个文件存在,而不是一个目录。
请注意,该文件可能会在您的支票和您尝试打开它之间删除,并且该方法不会检查当前用户是否具有读取权限。
File f = new File("file");
if (f.isFile() && f.canRead()) {
try {
// Open the stream.
FileInputStream in = new FileInputStream(f);
// To read chars from it, use new InputStreamReader
// and specify the encoding.
try {
// Do something with in.
} finally {
in.close();
}
} catch (IOException ex) {
// Appropriate error handling here.
}
}
关闭流的方式不正确。 in.close()应该在第一次尝试的最后。我给你一个减号提醒。 – 2014-10-16 07:08:54
@Charles Wu,在处理任何异常之前,通过关闭'in'不会丢失任何东西。另外,因为'FileInputStream'构造函数抛出'IOException'处理函数,'in'变量不能在'IOException'处理函数之外初始化,所以如果我把'finally'移到外面,我必须做一些愚蠢的窍门,比如初始化'in'在null中检查并且在'finally'中检查这只会使事情复杂化,即使我真的想忍受这种不必要的复杂性,无论如何我需要一个'try',因为'in.close()'可以抛出'IOException'。 – 2014-10-16 12:02:11
我的道歉误解你的代码。在内部try语句中使用FileInputStream的实例可以关闭in。但是'in.close()'的传播异常可能会在另一个'in'方法抛出异常时覆盖异常。 – 2014-12-04 02:10:34
您可以找到documentation的exists
方法:
File file = new File(yourPath);
if(file.exists())
FileInputStream file = new FileInputStream(file);
该死的有人生我的气。 。 – talnicolas 2015-08-20 20:40:34
您需要首先创建一个文件对象,然后用它的存在()方法来检查。该文件对象然后可以传递到FileInputStream构造函数中。
File file = new File("file");
if (file.exists()) {
FileInputStream fileInputStream = new FileInputStream(file);
}
谢谢,很好的回答。 – user93200 2012-04-03 02:34:51
使用File#exists。
可能重复的[如何检查文件是否存在? (在Windows上的Java)](http://stackoverflow.com/questions/1816673/how-do-i-check-if-a-file-exists-java-on-windows) – anubhava 2012-03-27 18:02:05