2016-07-19 42 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

相关问题