黑马程序员-File类

------- android培训java培训、期待与您交流! ----------

File类:用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作

 

创建对象:

1.      File f1 = new File(“a.txt”);//将a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象。

2.      File f2 = new File(“C:\\abc”,”b.txt”);

3.      File d = new File(“C:\\abc”);

File f3 = newFile(d,”b.txt”)

static String separator:目录分隔符   

       Filef = new File(“C:\\abc\\www\\asd\\aa.txt”);

File f = new File(“C:”+File.separator+”abc+File.separator+”asd”+File.separator +”aa.txt”);//可以跨平台,Linux下也能用

 

方法:

1.      创建:

boolean  createNewFile():在指定的位置创建文件,荣国该文件已经存在,则不存在,返回false。和输出流不一样,输出流对象一建立就创建文件,而且文件已经存在,会覆盖。

static FilecreateTempFile(String prefix,String suffix):创建临时文件

prefix - 用于生成文件名的前缀字符串;必须至少是三字符长

suffix - 用于生成文件名的后缀字符串;可以为 null,在这种情况下,将使用后缀 ".tmp"

boolean mkdir():创建文件夹,只能创建一级目录

booleanmkdirs():可创建多级目录

2.      删除:

booleandelete();删除失败返回false

voiddeleteOnExit();程序退出时删除指定文件,在虚拟机终止时,请求删除此抽象路径名表示的文件或目录

3.      判断:

boolean  exists():判断文件是否存在.

在判断文件对象是否是文件或者目录时,必须先判断该文件对象封装的内容是否存在

boolean  isDirectory() :测试此抽象路径名表示的文件是否是一个目录。

boolean  isFile():测试此抽象路径名表示的文件是否是一个标准文件

boolean  isHidden():测试此抽象路径名指定的文件是否是一个隐藏文件

boolean  isAbsolute():判断是不是绝对路径

4.      获取信息:

String   getName():获取文件名称

String   getParent():获取获取符目录的路径名,该方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回null

String   getPath():获取路径名转换为一个路径名字符串,String  getAbsolutePath():获取绝对路径名

long   lastModified():返回此抽象路径名表示的文件最后一次被修改的时间

long   length():返回由此抽象路径名表示的文件的长度

boolean   renameTo():重新命名此抽象路径名表示的文件。类似剪切

static File[]   listRoot() 列出可用的文件系统根

 

publicstaticvoid demo()throws IOException

    {

       File f = new File("D:\\abc.txt");

       booleanb = f.createNewFile();

       //System.out.println(b);

       //f.delete();

       //System.out.println(f.exists());

       //File dir = newFile("D:\\aaa\\kk");

       //dir.mkdir();

       System.out.println(f.isDirectory());

       System.out.println(f.isFile());

       System.out.println(f.isAbsolute());

       File d= new File("a.java");

       System.out.println(d.getName());

       System.out.println(d.getPath());

       System.out.println(d.getAbsolutePath());

       System.out.println(d.getParent());

       System.out.println(d.length());

       File a = new File("D:\\bbb.txt");

       File c = new File("D:\\ccc.txt");

       System.out.println(a.renameTo(c));

       File dirs = new File("D:");

       File [] ff = dirs.listRoots();

       for(File fr : ff)

       {

          System.out.println(fr);

       }

       System.out.println("----------------------");

       String [] arr = dirs.list();

       for(String fr1 : arr)

       {

          System.out.println(fr1);

       }

}

String []   list():返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录;调用list方法的file对象必须是封装了一个目录,该目录必须存在

String []   list(FilenameFilter filter):返回字符串数组,这些字符串指定此抽象路径名表示的目录中给定filter能接受的文件和目录。如果目录为空,或者没有名称被过滤器接受,那么该数组将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回null

FilenameFilter接口有一个方法boolean accept(File dir,String name):测试指定文件是否应该包含在某一文件列表中。当且仅当该名称应该包含在文件列表中时返回true;否则返回false

File[] listFiles():返回当前文件夹下的文件,以及文件夹的对象,可以通过对象获取名称

publicstaticvoid demo1()

    {

       File dd = new File("D:\\JAVA\\java2");

       String [] str = dd.list(new FilenameFilter()

       {

          publicboolean accept(File dir,String name)

          {

             return name.endsWith(".java");

          }

       });

       for(String name : str)

       {

          System.out.println(name);

       }

}

递归:函数自身调用自身

    注意:限定条件,(死循环)

列出目录下的所有内容:

publicstaticvoid demo2(File filter)

    {

       System.out.println(filter+"-----------");

       File [] frr = filter.listFiles();

       for(File f : frr)

       {

          if(f.isDirectory())

          {

             demo2(f);//递归,函数自身调用自身

          }

          System.out.println(f);

       }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值