我正在创建一个带有状态信息的文件:
"File f1=new File(//some random path)";
f1.mkdirs();
到目前为止,它工作正常。
try{
boolean c=f1.createNewFile();
}
catch(Exception e)
{System.out.println("caught exception");}
System.out.println(c);
每次执行代码时,它都会返回False
,即使该文件以前不存在并且仅在此编译中是新创建的。
答案 0 :(得分:0)
因为上一行中的mkdirs()已创建目录
创建以此抽象路径名命名的目录,包括任何必需但不存在的父目录。
并且createNewFile()
将始终返回false
,因为它已经创建
当且仅当具有此名称的文件不存在时,才会使用此抽象路径名创建一个新的空文件。
所以您可以满意
boolean c = false;
try {
c = f1.mkdirs();
答案 1 :(得分:0)
如果您的代码可以编译,则c
是类中具有值false
的字段。 try{}
块中的局部变量仅存在于try{}
块中,并且在处理System.out.println(c)
之前被遗忘了。
您不是要从try块中打印c=f1.createNewFile()
的返回值,而是要打印从未被触及的字段YourClass.c
的内容。
如果您的班级中没有字段c
,则您的代码将无法编译。