2012-01-30 70 views
1

我創建簡單的對象序列化,並創建BufferedOutputStream正在引發異常AccessDeniedException。下面是代碼:爲什麼AccessDeniedException在使用剛剛創建的文件夾時引發?

Path filePath = Paths.get("c:\\temp\\"); 
File xmlFile = new File("c:\\temp\\"); 
boolean success = xmlFile.mkdirs(); 
if (!success && ! xmlFile.exists()) { 
    // Directory creation failed 
    System.out.println("Failed to create a file: " + filePath); 
} 

try (
    ObjectOutputStream objectOut = new ObjectOutputStream(
     new BufferedOutputStream(Files.newOutputStream(filePath, StandardOpenOption.WRITE)))){ 
    // Write three objects to the fi le 
    objectOut.writeObject(solarSystem); // Write object 

    System.out.println("Serialized: " + solarSystem); 
} catch(IOException e) { 
    e.printStackTrace(); 
} 

但目錄是空的,如果沒有不存在的話,它的創建...

+0

什麼是'filePath'?我沒有看到聲明和價值?請注意,你應該寫入一個文件,而不是目錄 - 以防萬一'filePath'實際上是'「C:\\ temp」'。還要注意名稱'xmlFile'表明你有一個文件,但它指向一個目錄。 – Thomas 2012-01-30 14:56:32

+0

你是對的。更新 – Eugene 2012-01-30 14:59:21

+0

什麼是'路徑'? 'filePath'的實際值是多少? – Thomas 2012-01-30 15:01:30

回答

1

在這裏我要重複我的意見:你似乎試圖寫入目錄不是文件。嘗試將filePath更改爲文件。

相關問題