Java——File类

发布于:2022-12-18 ⋅ 阅读:(392) ⋅ 点赞:(0)

数据希望永久存储,使用文件的形式存储。
1、围绕文件的操作 2、读写数据。
File类 IO流

File类、IO流 概述
1、File类概述

  • File类的对象代表操作系统的文件(文件、文件夹),File类在java.io.File包下

  • File类提供了诸如:创建文件对象代表文件,获取文件信息(大小、修改时间)、删除文件、创建文件(文件夹)等功能

2、IO流 概述

  • 用来读写数据的。

关于File、IO流,同学们需要学会什么

在这里插入图片描述

File类

一、File类创建对象

在这里插入图片描述

绝对路径和相对路径

  • 绝对路径:从盘符开始
File file1 = new File(D:\\itheima\\a.txt”);
  • 相对路径:不带盘符,默认直接到当前工程下的目录寻找文件。
File file3 = new File(“模块名\\a.txt”);

File类的作用

  • 创建对象定位文件,可以删除、获取文件信息等。但是不能读写文件内容。

二、常用方法

1、File类的判断文件类型、获取文件信息功能

在这里插入图片描述

方法演示:

package com.jw;  
  
import java.io.File;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
  
public class FileTest {  
    /**  
     * public File(String pathname)     * public File(String parent,String child)     * public File(File parent,String child)     * */    public static void main(String[] args) {  
        File file = new File("E:\\JAVA\\File\\a.txt");  
        File file3 = new File("E:\\JAVA\\File\\b.txt");  
        File file4 = new File("File\\b.txt");  
        File file1 = new File("E:\\JAVA\\File", "a.txt");  
        File parent = new File("E:\\JAVA\\File");  
        File file2 = new File(parent,"a.txt");  
        System.out.println(file.isDirectory());// 是不是一个目录  false        System.out.println(parent.isDirectory());// true  
  
        System.out.println(file.isFile());// 是不是一个文件  
  
        System.out.println(file3.exists());// 存不存在  
  
        System.out.println(file3.getAbsolutePath());// 返回文件的绝对路径  
  
  
        System.out.println(file4.getPath());// 返回定义文件时使用的路径  
        System.out.println(file4.getAbsolutePath());//  
  
  
        System.out.println(parent.getName());// 返回文件的名称,带后缀  
  
        System.out.println(file.lastModified());// 返回最后的修改日期的毫秒值  
  
        long time = file.lastModified();  
        Date d = new Date(time);  
  
  
        System.out.println("该文件最后的修改时间为:"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(d));  
  
  
  
    }  
}

2、创建文件、删除文件功能

File类创建文件的功能
在这里插入图片描述

File类删除文件的功能
在这里插入图片描述

注意
delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站

方法演示:

package com.jw;  
  
import java.io.File;  
import java.io.IOException;  
  
  
public class FileTest2 {  
    public static void main(String[] args) throws IOException, IOException {  
        File file = new File("E:\\JAVA\\File\\b.txt");  
        File file1 = new File("E:\\JAVA\\File\\a.txt");  
        System.out.println(file.createNewFile());// 创建一个新的空的文件  
  
        System.out.println(file1.createNewFile());  
        File file2 = new File("E:\\JAVA\\a\\b");  
        File file3 = new File("b.txt");  
        file2.mkdir();// 创建单级目录  
        file2.mkdirs();// 创建多级目录  
        file2.delete();// 删除由此抽象路径名表示的文件或空文件夹  
        System.out.println(file3.createNewFile());// 相对路径创建文件  
    }  
}

3、遍历文件夹

File类的遍历功能
在这里插入图片描述

listFiles方法注意事项:

  1. 当文件不存在时或者代表文件时,返回null
  2. 当文件对象代表一个空文件夹时,返回一个长度为0的数组
  3. 当文件对象是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  4. 当文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  5. 当没有权限访问该文件夹时,返回null

方法演示:

  1. 遍历文件夹打印所有文件名
package com.jw;  
  
import java.io.File;  
  // 遍历文件夹打印所有文件名
public class FileTest3 {  
    public static void main(String[] args) {  
        File file = new File("E:\\JAVA\\common\\eclipse");  
        String[] files = file.list();  
        for (String s:files){  
            System.out.println(s);  
        }  
    }  
}
  1. 遍历文件夹,打印有关类型的文件数量
package com.jw;  
  
import java.io.File;  
  
public class FileTest4 {  
    public static void main(String[] args) {  
        File file = new File("E:\\JAVA\\common\\eclipse");  
        File[] files = file.listFiles();  
        int doc = 0;  
        int txt = 0;  
        int jpg = 0;  
        int dir = 0;  
        for (File f:files){  
            if (f.isDirectory()){  
                dir++;  
            }else {  
                String name = f.getName();  
                if (name.endsWith(".doc")){  
                    doc++;  
                }else if (name.endsWith(".txt")){  
                    txt++;  
                }else {  
                    jpg++;  
                }  
            }  
        }  
        System.out.println("文件夹:"+dir+",txt:"+txt+",doc:"+doc+",jpg:"+jpg);  
    }  
}
本文含有隐藏内容,请 开通VIP 后查看