A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐巍 黑马帝   /  2012-3-26 02:35  /  1303 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在下面代码中:
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());

        }
}

3 个回复

倒序浏览
f1.isDirectory());//打印结果:false
    判断这个路径民表示的文件或目录是否存在, 不存在就返回false了。

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

不是也就返回false了   。

   他们的返回值类型都是boolean  所以不存在 都是false  明白了吗?
回复 使用道具 举报
因为File  是把file。txt 这个文件名封装成对象的   如果你该目录下存在这个文件  则把这个文件封装成对象  如果不存在  就相当于把一个不存在的文件  或者说你想创建的文件
但是还没有创建到硬盘上的这个文件的名字封装成对象  所以你判断它的路径和这个文件都是返回false的
    因为你file。txt这个文件压根就不存在的   
所以说在判断文件路径和文件 前腰线判断它是否存在  exists() 先判断了  
回复 使用道具 举报
File f1=new File("file.txt"); //这个操作只是创建了File对象,并封装了file.txt文件,并没有在硬盘上实体创建文件

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

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



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马