2012-10-30 26 views
1

我試圖讓我的程序保存輸出到一個文件進行調試。問題是,它編譯沒有任何錯誤,而不創建任何地方的文件被看到。這可能非常簡單,但我無法弄清楚,有一段時間沒有用Java編碼。OutputStream代碼沒有給出任何錯誤,但txt文件丟失

public static void main(String[] Args) { 
    FileOutputStream out = null; 
    try { 
     out = new FileOutputStream("out.txt"); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    PrintWriter ps = new PrintWriter(out); 
    for (int l = 1; l < 1001; l++) { 
     ps.println((translation(makeString(l)))); 
     System.out.println((translation(makeString(l)))); 
    } 
    try { 
     out.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

在此先感謝!

+2

你在哪裏搜索你的文件?因爲它在執行程序的目錄中。 –

+1

你在哪裏運行這個程序在命令行或者像IDE的Eclipse – sunleo

+0

這樣的IDE進行檢查,雙重檢查...不在那裏!此外,我不確定它是相關的,但我使用Eclipse。也許它將文件保存在其他地方? –

回答

1

如果您正在運行在eclipse這個代碼,在workspace/project文件夾中搜索,你應該找一個有

+0

非常感謝,發現它在** src **文件夾之外。 –

2

您正在創建沒有絕對路徑的FileOutputStream。結果將相對於程序的當前目錄。以下顯示如何給絕對路徑。

public static void main(String[] Args) { 
    FileOutputStream out = null; 
    try { 
     out = new FileOutputStream("c:\\out.txt"); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    PrintWriter ps = new PrintWriter(out); 
    for (int l = 1; l < 1001; l++) { 
     ps.println((translation(makeString(l)))); 
     System.out.println((translation(makeString(l)))); 
    } 
    try { 
     out.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

會讓你的文件出現在C:驅動器的根文件夾...

+0

謝謝,夥計們。我的「問題」已解決。至於Andrea的建議,Eclipse說**「無效的轉義序列(有效的轉義序列是\ b \ t \ n \ f \ r \」\'\\)「** –

+0

使用轉義反斜線編輯... –

+0

也排序。thx –

1

FileOutputStream中如果文件不存在,則創建該文件:請參閱FileOutputStream(java.lang.String)

當您運行該文件時,該文件將位於當前目錄中。要查看代碼正在運行的位置,請添加以下行:

System.out.println(new java.io.File(".").getAbsolutePath()); 

這將打印出當前的工作目錄。

相關問題