当我写这篇
时String path="d:\\test.txt";
boolean chk;
File f=new File(path);
try
{
chk=f.createNewFile();
}catch(IOException e)
{
chk=false;
e.printStackTrace();
}
if(chk)
System.out.println("file created.");
else
System.out.println("file not created");
文件在d-drive
中创建但是当我使用这个
时String path="d:\\test.txt";
File f=new File(path);
if(f.createNewFile())
System.out.println("file created.");
else
System.out.println("file not created");
它抛出异常。
请赐教我这个
答案 0 :(得分:3)
我怀疑第二段代码实际上是“抛出异常”;您可能看到的最有可能是编译错误,警告您在调用IOException
时必须抓住已检查的例外createNewFile
。
“已检查”异常必须具有处理程序或由调用方法通过throws
声明,否则您的代码将无法编译。 IOException
已经过检查。 createNewFile
声明它throws IOException
。因此,您的第二个代码块不正确。
答案 1 :(得分:1)
将代码的第二部分更改为以下内容:
String path = "d:\\test.txt";
File f = new File(path);
try {
if (f.createNewFile())
System.out.println("file created.");
else
System.out.println("file not created");
} catch (IOException e1) {
e1.printStackTrace();
}
你需要这样做,因为如果你没有在try / catch块中使用f.createNewFile(),你的代码将无法编译。由于f.createNewFile()的使用抛出IOException,你需要将它放在try / catch块中捕获IOException或使用这部分代码的方法需要声明抛出IOException。
答案 2 :(得分:0)
如果文件已存在(或者您没有权限创建文件),File.createNewFile()会抛出异常。因此,在运行第一段代码后...如果您忘记删除test.txt,则第二段将失败。
答案 3 :(得分:-1)
我猜你得到一个IO异常,或者你不能创建(写)该文件,可能是因为它被打开了。