Java-Day06-File

正如我们介绍集合类的情况,今天仍然开一个专题专门来介绍File类,后续的内容在不久的未来会在本片文章中补充,现在我们开始介绍。

一. 简介

File类也是是输入io包下的一个子类,在我们使用File类的过程中需要导入IO包,File类专门用来文件的有关操作,也就是我们可以摆脱对控制台的掌控,来对文件与文件夹进行操作,在学习File类之前我们需要学习几个英文单词:

  • file 文件的意思,目前指的主要是带有后缀名,而且带内存的文件。
  • directory 区别与文件,指的是目录,也就是我们所说的文件夹,不占内存。
  • path 路径
    在学习中遇到有关这三个单词的方法,我们可以大体知道其说的含义。

二. File类中的静态成员变量

  • pathSeparator 和pathSeparatorChar 与系统有关的路径的分隔符,在不同的系统中会有不同的常量,在windows中是;(在配置环境变量的时候我们遇到过),在linux中是:两者的区别是,前者是字符串,后者为字符。
  • sparator 和sparatorChar 与系统有关的文件名称分隔符,windows中是,在linux中是/,(路径中经常出先),两者的区别同上。

三. 相对路径与绝对路径

绝对路径:从盘符开始的完整路径。
相对路径:相对于根目录的简化路径,根目录可以省略。
注意: 路径是不区分大小写的,而且!/中在字符串中意思是转义字符,我们在添加字符串时要用//

四. File类的构造方法

  • File(String pathname) 通过添加字符串创建File对象。
  • File(String parents,String Child) 创建子串和父串,便于操作,在toString中会联合打印。
  • File(File parent,String Chiled)同2,但是父串时File类,可以用File类中的方法。

五. File类中的常用方法

1. 获取方法

  • String getAbsolutePath()
    获得绝对路径
  • String getPath()
    获得路径(创建时的)
  • String getName()
    获得最后一个名字
  • long length()
    获得文件大小

2. 判断方法

  • boolean exists()
    是否存在
  • boolean isDirectory()
    是否时目录
  • boolean isFile()
    是否是文件

3. 创建删除方法

boolean creatNewFile()
创建一个文件

  • boolean mkdir()
    创建一个目录(不创建父目录)
  • boolean mkdirs()
    创见一个目录(包括父目录)
  • boolean dirs()
    删除File类表示的类

4. 目录的遍历

  • String[] list()
    将目录拆成字符串
  • File[] listFile()
    将字符拆成File类

5. 文件过滤器

File类中的两个与ListFile重载的方法

  • File[] listFile(FileFileter fileter) 有过滤性的拆解这个文件,其中的FileFileter是一个接口我们通常要创建一个实现了该接口的类FileFileterImpl,然后用listFile(new FileFileterImpl)。
    我们在实现该接口的accept方法,如果是希望通过,则return true,否则return false
  • File[] listFile(FilenameFileter fileter)区别与第一向,该重载方法是用来过滤文件名称,实现的方法是accept(File dir,String name)
public class FilefilterImpl implements FileFilter {
    @Override
    public boolean accept(File pathname) {
        if(pathname.isDirectory())
            return true;
        return pathname.getName().toLowerCase().endsWith(".java");
    }
}//FileFilter的实现类
    public static void main(String[] args) {
        File f1=new File("E:\\gwl_J\\bbb");
        method(f1);
    }

    private static void method(File f2) {
        File []s=f2.listFiles(new FilefilterImpl());
//        for(File s:f2.listFiles()){
//            if(s.isDirectory())
//                method(s);
//            else
//                System.out.println(s);
//        }
        for (int i = 0; i < s.length; i++) {
            if(s[i].isDirectory())
                method(s[i]);
            else
                System.out.println(s[i]);
        }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容