2013-03-02 80 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

檢查您有權限在您正在運行的目錄中創建文件。