黑马程序员技术交流社区

标题: IO流中sDirectory()与isFile()方法 [打印本页]

作者: 凝聚    时间: 2013-10-28 09:20
标题: IO流中sDirectory()与isFile()方法
本帖最后由 凝聚 于 2013-10-28 15:25 编辑

File ff=new File("D:\\java\\workspace\\heima\\Filee.txt");
                ff.createNewFile();
sop("dir:"+ff.isDirectory());
这段代码他显示dir:false怎样才是ture呢?
还有:isDirectory()与isFile()的区别是什么啊,最好举个例子。


作者: linjl_ll    时间: 2013-10-28 10:24
File dir = new File("D:\\java\\workspace\\heima");
File file = new File("D:\\java\\workspace\\heima\\Filee.txt");
               
System.out.println("dir:"+dir.isDirectory()+"   "+dir.isFile());
System.out.println("file:"+file.isDirectory()+"   "+file.isFile());

哥们你看下上面这段代码就知道了。
目录和文件在java中都是用File这个类来表示的。
作者: 雨过丶天已晴    时间: 2013-10-28 10:51
对于第一个问题,因为指定路径下的文件,是一个标准文件,而不是目录,所以打印false


对于第二个问题:
   楼主是不是很奇怪,为什么File是目录与文件的抽象表示形式,为什么还要判断isFile(),而且通过目录判断时,返回flase
   其实这个不用奇怪,只是这么命名而已,这里的isFile表示狭义的文件,isDirectory()表示的目录

   先看看isFile(),isDirectory()的文档,
   isFile(): 测试此抽象路径名表示的文件是否是一个标准文件。
   isDirectory:  测试此抽象路径名表示的文件是否是一个目录。
   其实查看isFile()与isDirectory就可以很快发现,判断方法几乎完全相同,只是最后的一句话引用的变量不同而已,
   我们来想一想,在创建文件的时候有两个方法,creatNewFile(),与makedir(),其实当创建的时候,就把文件和目录分开了
   都把他们加上了各自的标志位,isFile()与isDirectory在判断的时候,也只有在标志位判断上有区别。

作者: 黄炳期    时间: 2013-10-28 12:03
如果问题已经解决,请及时修改主题至“提问结束”
作者: 凝聚    时间: 2013-10-28 15:24
linjl_ll 发表于 2013-10-28 10:24
File dir = new File("D:\\java\\workspace\\heima");
File file = new File("D:\\java\\workspace\\heima\ ...

大神很给力:handshake




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