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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© NNERO 中级黑马   /  2014-4-26 20:44  /  1120 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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()返回的是什么。求解答!

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 世界公民 于 2014-4-26 20:58 编辑

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

返回:
此抽象路径名表示的文件的长度,以字节为单位;如果文件不存在,则返回 0L。对于表示特定于系统的实体(比如设备或管道)的路径名,某些操作系统可能返回 0L。
回复 使用道具 举报
本帖最后由 ò壞尛孩 于 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()对于文件夹对象不适用!毕老师的视频里面有说!
回复 使用道具 举报
了解了,其实就文件夹不适用这个方法!OK,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马