Java 数据流之File类

一,文件类File类

  1. File类构造方法

    • 第一种:File(String path) ,path指明新创建File对象对应的文件或目录的路径,如:

      File f1=new File("C:/myProgram/Java");  //绝对路径下新建文件,指定目录
      File f2=new File(/myProgram/Java");  //相对路径下新建文件,当前目录下的子目录myProgram
    • 第二种:File(String path, String name) , path指定文件或目录路径,name指定文件或目录名

      File f1=new File("/docs", "file.dat");  //相对路径为\docs,文件名为file.dat
    • 第三种:File(String dir, String name) , dir指定已有的File对象的路径,name指定该文件名或目录名

      String sdir="myProgram"+System.dirSep+"Java"; 
      String sfile="FileIO.data";
      File Fdir=new File(sdir);
      File Ffile=new File(Fdir, sfile);
  2. 创建与删除文件方法

    • 创建文件:public boolean createNewFile(),创建一个新的空文件,其文件名命名为对应的抽象目录名;
    • 重命名文件:public boolean renameTo(File newFile),当文件重命名成newFile对应的文件名;
    • 删除文件:public void delete( );
    • 创建目录:public boolean mkdir( );
  3. 获取文件或目录属性方法

    • 判断文件或目录是否存在:public boolean exists( ) ,
    • 判断是对象是否是有效文件:public boolean isFile( ),
    • 判断是对象是否是有效目录:public boolean isDirectory( ),
    • 获取文件的读写属性:public boolean canRead( ) , public boolean canWrite() ,
    • 比较两文件或目录是否相同:public boolean equals(File f),
    • 获取文件或目录路径:public String getPath(),
    • 获取文件或目录名称:public String getName(),
    • 获取文件的长度:public long length(),返回文件的字节数;
  4. 获取目录成员

    • File类有一个Sting list[ ]()方法,可以将目录中所有的文件名保存在字符数组中,如
      File f=new File("C:/jdk")     //创建FileString s[]=f.list();         //将jdk目录下所有的文件或目录名保存到s字符数组中
  5. 过滤文件名

    • 通过创建一个实现FilenameFilter接口的类,在该类中编写需保留的文件名和后缀名的方法;
    • FilenameFilter过滤器接口是实现文件过滤功能必须实现的接口;

      class FilenameFilterDemo implements FilenameFilter{
          private String name;  //定义保留的文件名
          private String ext;    //定义保留的拓展名
      
          public FilenameFilterDemo (String name ,String ext){    //过滤器构造方法,入参是保留文件名和后缀名
              this.name=name;
              this.ext=ext;
          }
      
          public boolean accept(File dir, String filename){   //accept成员方法是过滤的核心函数
              boolean fString=true;
              if(name!=null)  fString &=filename.startsWith(name);
              if(ext!=null)    fString &=filename.endsWith("."+ext);
              return fString;
          }
      }
    • 对创建的过滤器类实例化对象后,就要用File类实例对象调用list方法,并将过滤器类对象作为list函数的入口参数,此时list在获取字符串数组目录中所有的成员时,会自动过滤掉不符合name和ext的文件名;如,

      FilenameFilter x=new FilenameFilterDemo("java","exe");   //新建过滤器对象,设置保留以java开头,并且以.exe结尾的文件
      File f=new File("c:/jdk/bin");        //新建File类对象,设置目录为bin
      String  s=f.list(x);                  //将过滤后的文件名字符串数组存放于s中

猜你喜欢

转载自blog.csdn.net/WalleIT/article/details/70148722