在Java中创建文件时遇到麻烦

时间:2013-03-02 08:18:20

标签: java ioexception

import javax.swing.*;
import java.io.*;
import java.util.*;
class Buns {
    public static void main(String[] args) {
        File f= new File("Buns.dat");
            f.createNewFile();
   }
}

这个程序在createNewFile调用上引发IOException,任何人都可以告诉我为什么会发生这种情况?

3 个答案:

答案 0 :(得分:3)

绕过try/catch block,因为File#createNewFile()可能会在 IOError 的情况下抛出 IOException .IOException是已检查的异常并且在java编译器中将强制您自己在代码中handle/declare检查异常。

try {
File f= new File("Buns.dat");
f.createNewFile();
}
catch(IOException ex){
ex.printStacktrace();
}

使用try-with-resource Statement来自 java 1.7:

try(File f= new File("Buns.dat")) {
    f.createNewFile();
    }
    catch(IOException ex){
    ex.printStacktrace();
    }

如果您选择使用try-with-resource语句,唯一的区别是您不需要使用finally block. To use try-with-resource though the object which you use inside the try-with-resource statement must implement java.lang.AutoCloseable`显式关闭您的资源。

您还可以在方法签名中使用throws clause来传播异常。

public static void main(String[] args) throws IOException {

相关:

答案 1 :(得分:0)

public static void main (String [] args) throws IOException
{
    File f= new File ("Buns.dat");
    f.createNewFile ();
}

答案 2 :(得分:0)

检查您是否有权在正在运行的目录中创建文件。