IO流-4.【File类】【递归】【属性类Properties】

一、File类

1、File类的基本介绍:

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

注意:流只能用来操作数据,而如果要操作被数据封装的文件的信息,则必须要用File对象。


2、File类中的常用方法和常量

常量:

public static final String separator分隔符。Windows中表示“\”,Linux中表示“/”

public static final String pathSeparator 分隔符。Windows中表示表示“;”

以上两个表示分隔符的常量可以实现跨平台。

 

常用构造方法:

File(String pathname):可以将指定的(出现的或者未出现的)文件或者文件夹封装成File对象。

File(String parent, String child)

File(File parent, String child)

 

常见方法:

①、创建

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

boolean mkdir():创建目录。只能创建一级目录。

boolean mkdirs():创建目录。可以创建多级目录。

 

②、删除

boolean delete():删除指定的文件。删除成功返回true,删除失败返回false。

记住:在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在。通过exists()方法判断。

void deleteOnExit():在程序退出时删除指定文件。

 

③、判断

boolean exists():文件是否存在。

boolean isDirectory():是否是目录。

boolean isFile():是否是文件。

boolean isHidden():是否是隐藏文件。

boolean isAbsolute():是否是绝对路径。

 

④、获取信息

String getName():获取文件或者文件目录的名字。

String getPath():获取路径。

String getParent():获取父目录。该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null。如果相对路径中有上一层目录,那么该目录就是返回结果。

String getAbsolutePath():获取绝对路径。

long lastModified():获取文件最后一次被修改的时间。

long length():获取文件的大小。

 

代码示例:

import java.io.*;
class FileDemo
{
       public static void main(String[] args) throws IOException
       {
              //consMethod();
              //method_1();
              //method_2();
              method_5();
       }
 
       public static void method_5()
       {
              File f1 = new File("c\\Test.java");
              File f2 = new File("d\\haha.java");
              sop("rename:"+f1.renameTo(f2));    //renameTo方法将c盘下的Test.java这个文件移动到d盘下并重命名为haha.java,文件的内容不变。
       }
 
       public static void method_4()
       {
              File f = new File("file.txt");
 
              sop("name:"+f.getName());   //返回文件对象的名字。
              sop("path:"+f.getPath());   //返回文件对象所在路径。
              sop("Absolutepath:"+f.getAbsolutePath());  //返回绝对路径。
              sop("parent:"+f.getParent());   //该方法返回的是绝对路径中的父目录。
              sop("modified:"+f.lastModified());
              sop("length:"+f.length());
       }
 
       public static void method_3() throws IOException
       {
              File f = new File("f:\\Java2014\\day20\\file.txt");
 
              f.createNewFile();    //创建文件。
              sop("dir:"+f.isDirectory());   //判断File对象是否是一个目录?
              sop("file:"+f.isFile());   //判断File对象是否是一个文件?
              sop(f.isAbsolute());    //判断传入的文件路径是否是绝对路径。
       }
 
       public static void method_2()
       {
              File f = new File("file.txt");
 
              sop("exists:"+f.exists());   //判断文件是否存在。
              sop("execute:"+f.canExecute());    //判断是否是可执行文件。
 
              //创建文件夹。
              File dir = new File("abc\\aa\\bb\\cc\\dd\\ee\\ff\\gg\\k");
              sop("mkdir:"+dir.mkdirs());    //通过mkdirs()方法创建多级目录。
       }
 
       public static void method_1() throws IOException
       {
              File f = new File("file.txt");
              //f.deleteOnExit();    //在程序退出时删除文件。
 
              sop("create:"+f.createNewFile());
              sop("delete:"+f.delete());   //删除文件。
 
       }
 
       public static void consMethod()
       {
              //将a.txt封装成File对象。可以将已有的和未出现的文件或者文件夹封装成对象。
              File f1 = new File("a.txt");
              File f2 = new File("c:\\abc","b.txt");
              File d = new File("c:\\abc");
              File f3 = new File(d,"c.txt");
              sop("f1:"+f1);
              sop("f1:"+f2);
              sop("f1:"+f3);
 
              //File类中的separator常量用做分隔符。可以垮平台。
              File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz");
              sop("f4:"+f4);
       }
       public static void sop(Object obj)
       {
              System.out.println(obj);
       }
}

 

3、File对象—文件列表

①、static File[] listRoots():列出系统中的可用盘符。

public static void listRootsDemo()
       {
              File[] files = File.listRoots();
 
              for(File f : files)
              {
                     System.out.println(f);
              }
       }

运行结果:

 

②、String[] list():列出指定目录下的所有文件和文件夹,包括隐藏的和未隐藏的。返回的是指定目录下的文件夹和文件名称。

public static void listDemo()
       {
              File f = new File("c:\\");
             
              String[] names = f.list();
              for(String name : names)
              {
                     System.out.println(name);    //列出c盘根目录下所有的文件和文件夹,包括隐藏的。
              }
       }

注意:调用了list方法的File对象必须是封装了一个目录,并且该目录还必须存在。

 

③、String[] list(FilenameFilter filter)

       boolean accept(File dir, String name):FilenameFilter接口中的方法。过滤指定文件夹下的指定文件。

public static void listDemo2()
{
       File dir = new File("F:\\Java2014\\day18");
       String[] arr = dir.list(new FilenameFilter()     //通过匿名内部类传入一个FilenameFilter接口的子类对象。
       {
              public boolean accept(File dir,String name)    //覆写FilenameFilter接口中的accept方法,对指定目录下的指定文件进行过滤。
              {
                     //System.out.println("dir:"+dir+"......name:"+name);
                     /*
                     if(name.endsWith(".class");
                            return true;
                     else
                            return false;
                     */
                     return name.endsWith(".class");    //过滤后缀名为.class的文件。
              }
       });
 
       System.out.println("len:"+arr.length);
       for(String name : arr)
       {
              System.out.println(name);
       }
}

④、File[] listFiles():列出指定目录下的所有文件和文件夹。返回的是指定目录下文件和文件夹的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值