黑马程序员技术交流社区

标题: 关于判断文件对象的问题 [打印本页]

作者: 唐巍    时间: 2012-3-26 02:35
标题: 关于判断文件对象的问题
在下面代码中:
import java.io.*;
class FileDemo2
{
        public static void main(String[] args)throws IOException
        {
                method();
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void method()throws IOException
        {
                File f1=new File("file.txt");
                sop("dir:"+f1.isDirectory());//打印结果:false
                sop("file:"+f1.isFile());//打印结果:false  为什么判断的结果都为false?
                sop(f1.isAbsolute());
                File f2=new File("d:\\java01\\day20\\file.txt");
                sop(f2.isAbsolute());

        }
}
作者: 刘元霄    时间: 2012-3-26 02:48
f1.isDirectory());//打印结果:false
    判断这个路径民表示的文件或目录是否存在, 不存在就返回false了。

isFile()
          判断此抽象路径名表示的文件是否是一个标准文件。

不是也就返回false了   。

   他们的返回值类型都是boolean  所以不存在 都是false  明白了吗?

作者: 贠(yun)靖    时间: 2012-3-26 03:32
因为File  是把file。txt 这个文件名封装成对象的   如果你该目录下存在这个文件  则把这个文件封装成对象  如果不存在  就相当于把一个不存在的文件  或者说你想创建的文件
但是还没有创建到硬盘上的这个文件的名字封装成对象  所以你判断它的路径和这个文件都是返回false的
    因为你file。txt这个文件压根就不存在的   
所以说在判断文件路径和文件 前腰线判断它是否存在  exists() 先判断了  
作者: 申振华    时间: 2012-3-26 06:00
File f1=new File("file.txt"); //这个操作只是创建了File对象,并封装了file.txt文件,并没有在硬盘上实体创建文件

所以你使用一系列的判断方法都返回flse;

再执行以下判断方法时,首先掉用exists()判断文件是否存在,如果不存在则需要调用createNewFile()创建实体文件
        boolean isDirectory();        //判断是否为目录
        boolean isFile();                //判断是否为文件
        boolean isAbsolute();        //是否为绝对目录
        boolean canExecute();   //是否为可执行文件
        boolean isHidden();     //隐藏文件








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2