黑马程序员技术交流社区

标题: File类的问题 [打印本页]

作者: NNERO    时间: 2014-4-26 20:44
标题: File类的问题
本帖最后由 NNERO 于 2014-4-27 14:29 编辑
  1. public class Text111
  2. {
  3.         public static void main(String[] args)throws IOException
  4.         {
  5.                File f1  = new File("f:\\JAVA_learning\\base01.java");
  6.                
  7.                File d = new File("src/com/itheim");
  8.            
  9.                System.out.println(f1.length());//输出结果是:470
  10.                System.out.println(d.length());//输出结果是:4096

  11.         }
  12. }
复制代码
如注释,这个length()返回的是什么长度?470是指这个文件大小是470字节,这个我懂,但是我用目录作为对象
打印的是4096。但是我这个目录下的文件总大小是11KB,所以不是总大小啊,
那么这时,这个length()返回的是什么。求解答!


作者: 世界公民    时间: 2014-4-26 20:57
本帖最后由 世界公民 于 2014-4-26 20:58 编辑

File类中的length()方法:
public long length()返回由此抽象路径名表示的文件的长度。如果此路径名表示一个目录,则返回值是不确定的。

返回:
此抽象路径名表示的文件的长度,以字节为单位;如果文件不存在,则返回 0L。对于表示特定于系统的实体(比如设备或管道)的路径名,某些操作系统可能返回 0L。
作者: ò壞尛孩    时间: 2014-4-26 22:04
本帖最后由 ò壞尛孩 于 2014-4-26 22:08 编辑
  1.         public static void method_3()throws IOException
  2.         {
  3.                 File f1=new File("c:/file.txt");
  4.                 //记住判断一文件对象是否是文件或者目录时,必须要先判断该文件对象封装的
  5.                 if(!f1.exists())
  6.                         f1.createNewFile();
  7.                 File f2=new File("c:/myclass");
  8.                 f2.mkdirs();
  9.                 sop("dir:"+f2.isDirectory());
  10.                 sop("file:"+f1.isFile());
  11.                 System.out.println(f1.length());
  12.                 System.out.println(f2.length());
  13.         }
复制代码
你用我写的试一下,文件的长度取决于里面字节的长度,也就是内容的长度,而文件夹不管里面有没有内容都是返回0,说明length()对于文件夹对象不适用!毕老师的视频里面有说!
作者: NNERO    时间: 2014-4-27 14:29
了解了,其实就文件夹不适用这个方法!OK,谢谢!




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