日期:2014-05-20  浏览次数:20905 次

File类实例什么时候在目录中创建文件?
代码如下:                                    
                File   javaFile   =   new   File( "E:\\javaFile.txt ");
                try
                {
    //if   (javaFile.isFile())
    //{
    // System.out.println( "文件已存在! ");
    //}
    if   (javaFile.exists())
    {
System.out.println( "文件已存在! ");
    }
    else
    {
                              //javaFile.createNewFile();
                            //System.out.println( "文件创建成功! ");
                        }
                        PrintWriter   printWriter   =   new   PrintWriter(javaFile);
      printWriter.println( "Hello   world! ");
      printWriter.close();
                }
catch   (IOException   e1)
{
e1.printStackTrace();
}

发现即便不createNewFile,只要在javaFile里写hello   world,程序就会自动在目录下生成javaFile.txt。
所以想求教一下file生成文件的机制?
另外问一下大虾们,isFile这个方法,从api说明里看,好像只是判断file实例是directory还是normal   file,但我实验的结果是,它还检查该实例是否已经生成文件?请大虾证实一下是否有这样的机制?
谢谢!

------解决方案--------------------
File javaFile = new File( "E:\\javaFile.txt ");
这个时候就建立文件了
------解决方案--------------------
File javaFile = new File( "E:\\javaFile.txt ")是在内存中创建,还没开始写到磁盘,createNewFile是真正开始写入磁盘
------解决方案--------------------
你往不存在的文件里写数据的时候 文件才会被建立 而不是你声明File类的实例的时候 就建立