2013-03-02 52 views
0
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任何人都可以告诉我为什么会发生这种情况?在使用Java创建文件时遇到麻烦

+0

复制了代码并且它工作正常。 – christopher 2013-03-02 08:20:05

+0

异常的消息是什么? (请注意,你编写的代码甚至不会编译,因为你既没有捕获'IOException'也没有声明'main'可以抛出它。) – 2013-03-02 08:20:09

+0

你得到的异常信息是什么? – Aurand 2013-03-02 08:20:32

回答

3

各地try/catch block把它包装成File#createNewFile()可能抛出IOException异常IO错误 .IOException的情况下是一个检查的异常和Java编译器将迫使你handle/declare在自己的代码检查的异常。 的Java 1.7使用try-with-resource Statement

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

来源:

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

如果您选择使用try-与资源的说法,唯一不同的是,你并不需要显式地使用finally block. To use try-with-resource though the object which you use inside the try-with-resource statement must implement closeyour resouces java.lang.AutoCloseable`。

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

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

相关:

+0

感谢它的工作,并有帮助! = D – 2013-03-02 08:41:48

+0

@KevinK不客气。请不要忘记勾选接受的答案。 :) – PermGenError 2013-03-02 08:42:46

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

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