2016-07-19 67 views
1

我有以下代碼:在Windows上寫入aux文件時會發生什麼?

public class MyTest { 
    public static void main(String [] args) throws Exception { 
    java.io.File f = new java.io.File("aux.txt"); 
    f.createNewFile(); 
    java.io.FileWriter fw = new java.io.FileWriter(f);   
    fw.write("Hello"); 
    fw.flush(); 
    fw.close(); 
    } 
} 

代碼運行並不會引發任何異常。除了:aux.txt文件不存在。我發現f.createNewFile()返回false,because the aux file is not allowed to be created on windows。好的,我可以忍受這一點。

但是,我的困惑是:如果FileWriter沒有拋出任何異常,它寫在哪裏?

+0

它試圖寫入AUX設備,通常是COM1 –

回答

3

根據MSDN

不要爲一個文件名使用保留名稱如下: CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7, COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9。同時避免使用這些名稱,緊接着是擴展名;例如,不建議使用NUL.txt。

false返回的意思是說文件已經存在。根據this blog寫入AUXWindows會導致寫入輔助設備,通常是一個串口。

另外,請嘗試寫入名爲CON的文件。它應該出現在控制檯中。

+0

誤會。糾正。 – xenteros

+0

嗯...既不CON'也沒有任何變種,如'con.txt'沒有寫給我的控制檯... –

+0

您是否嘗試從控制檯或從IDE啓動應用程序?它在許多技術中以這種方式工作。 – xenteros

相關問題