2014-04-06 44 views
0

我正在嘗試編寫一個簡單的數據輸出文件。當我執行代碼時,我得到一個「No file exist」作爲輸出,並且在dir中沒有創建data.txt文件。在Java中創建一個簡單的數據輸出文件

我錯過了什麼?奇怪的是,那天晚上它工作正常,但是當我今天把它裝上來再次測試時,發生了這種情況。

下面是代碼:

import java.io.*; 
import java.util.*; 

public class DataStreams { 

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

     try { 

      DataOutputStream out = new DataOutputStream(new FileOutputStream("C:\\data.txt")); 
      for (int i = 0; i < 10; i++) { 
       out.write(i); 
      } 
     } catch (IOException ioe) { 
      System.out.println("No file exist"); 
     } 
    } 
} 

數據文件應是數字1的簡單的顯示通過9.

感謝您的輸入。

+0

嗯,刪除和重新輸入,我想寫文件的目錄地址之後 - 它的工作。我沒有回答我的問題,以防萬一任何人有什麼補充,爲什麼它可能最初沒有奏效。在發佈問題之前,我很抱歉沒有排除此問題。 – TroutmasterJ

+0

嘗試打印在catch塊中使用ioe.printStackTrace()引發的異常。然後你可以確認什麼是例外。 – bgth

回答

0

在Windows平臺上,默認情況下,C:\是受限路徑。以前,該應用程序可能已作爲允許訪問的administrator運行。

解決方案:使用一個不同的位置

DataOutputStream out = 
    new DataOutputStream(new FileOutputStream("C:/temp/data.txt")); 
0

在c:中創建一個名爲data.txt的文本文件。您必須刪除該文件。手動創建該文件將工作

0

你應該看看例外本身:

System.out.println("No file exist"); 
System.out.println(ex.getMessage()); 

也許你沒有必要的權限,與您的程序訪問C:\

0
  1. 要將數據寫入文件,首先應該創建它,或者檢查它是否存在。否則將引發IOException。
  2. 默認情況下,C:\中的寫入被拒絕,因此即使您創建了該文件,也會因爲訪問被拒絕消息而獲得IOException。

    public static void main(String[] args) throws IOException { 
        File output = new File("data.txt"); 
        if(!output.exists()) output.createNewFile(); 
        try { 
         DataOutputStream out = new DataOutputStream(new FileOutputStream(output)); 
         for (int i = 0; i < 10; i++) { 
          out.write(i); 
         } 
        } catch (IOException ioe) { 
         System.out.println("No file exist"); 
        } 
    } 
    
相關問題