Java文件IO File类 详解

java基础(jdk1.8)

**

文件IO——File类

**

文件IO是Java对操作系统上文件进行操作的一个类,使用这个来对文件进行操作

      文件IO的所有类都在java.io这个包下,因此需要导入io包才能操作

File类


    java.io.File
    *    将操作系统中的,文件,目录(文件夹),路径,封装成File对象
    *    提供方法,操作系统中的内容
    *    File与系统无关的类
    *    文件 file
    *    目录 directory
    *    路径 path

File类静态的成员变量

    pathSeparator:与系统有关的路径分隔符(String)

    separator:与系统有关的默认名称分隔符(String)

File类构造方法

    绝对路径:绝对路径是一个固定的路径,从盘符开始
    相对路径:相对于某个位置 //根据父子目录定位
        父目录:文件上一层文件路径(唯一)
        子目录:下层文件路径(不唯一)

    File(String)

    /**
     * 传入绝对路径
     *      File构造并无FileNotFoundException,
     *      因此这个文件可存在可不存在
     *      绝对路径可传文件夹也可传文件
     */
    File file = new File("d:\\a.txt");
    //第一个\为转义字符,第二个为操作系统默认分隔符

    File(String,String)

    /**
     * 传入相对路径
     *      第一个String为父目录
     *      第二个String为子目录
     */
    File file = new File("d:","java");

    File(File,String)

    /**
     * 传入相对路径
     *      第一个File为父目录
     *      第二个String为子目录
     */
    File parent = new File("d:");
    File file = new File(parent,"java");

File类方法

创建文件
  • createNewFile()
    //创建文件,不会创建文件夹,已有则不会创建
    File file = new File("d:\\a.txt");
    file.createNewFile();//返回boolean类型
创建文件夹
  • mkdir()

  • mkdirs()

    /*
     * 创建文件夹,已有则不会创建
     *      使用mkdirs() 可创建多层文件夹(推荐使用)
     */
    File file = new File("d:\\新建文件夹");
    file.mkdir();//返回boolean类型
    file = new File("d:\\新建文件夹\\a\\b");
    file.mkdirs();
删除
  • delete()
    //删除文件夹或者文件
    File file = new File("d:\\a.txt");
    file.delete();//返回boolean类型
查找/获取
  • getName() //拿到文件或文件名字符串

  • getPath() //和toString一样

  • length() //获取文件字节数 (long型,文件夹无)

  • getAbsolutePath()    getAbsoluteFile() //获取文件绝对路径 返回Sting返回File

  • getParent()    getParentFile() //获取文件父路径 返回Sting返回File

扩展:

  • list()
    //遍历一个目录(文件夹),返回String []
    //只有名字
    File file = new File("d:\\");
    String [] arr = file.list();
    for (String str : arr)
    {
        System.out.println(str);
    }
  • listFiles() //遍历一个目录(文件夹) 返回File[] 全路径名

  • static listRoots() //遍历系统跟目录 返回File[]

判断
  • exists() //判断file(文件或文件夹)是否存在

  • isDirectory() //判断file是否为目录(文件夹)

  • isFile() //判断file是否为文件

文件过滤

使用listFiles的重载方法

  • listFiles(FileFilter)

    import java.io.*;

    public class FileCheck {
        /**
        * listFiles(FileFilter filefilter)
        *      1、传入FileFilter接口的实现类对象
        *      2、每拿一个file后将其作为参数传入重新的accept方法
        *      3、使用accept实现对文件的过滤
        *///遍历file下txt文件 ,只有file下,无子文件下
        static void printTxtNo_1(File dir) {
            File [] files = dir.listFiles(new MyFilter());
            for (File f : files)
            {
                System.out.println(f);
            }
        }

        //遍历file下所有txt文件,包括所有子目录的
        static void printTxtNo_2(File dir){
            File [] files = dir.listFiles();
            for (File f : files)
            {
                if (f.isDirectory())
                {
                    printTxtNo_2(f);
                }
                //toLowerCase()将其都转为小写
                else if (f.getName().toLowerCase()
                    .endsWith(".txt"))
                {
                    System.out.println(f);
                }
            }
        }
    }
    class MyFilter implements FileFilter{
        @Override
        public boolean accept(File pathname) {
            //pathname为全路径名,先拿到文件名,然后判断其是否为txt文件
            return pathname.getName().endsWith(".txt");
        }
    }

有兴趣的关注我的公众号,一起学习交流啊
在这里插入图片描述

上一篇 》


下一篇 》IO流对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值