Java中的文件处理

1 File 类的使用

概述:在包java.io.File下、代表操作系统的文件对象(文件、文件夹);

2 代码实践

2.1 文件对象获取

package cn.edu.njust.ioandfile;

import java.io.File;

/**
 * 获取一个文件对象,之后可以根据这个文件对象对文件进行操作
 */
public class FileDemo01 {

    public static void main(String[] args) {
        /*
        * 构造器
        * 1. public File(String pathname)	根据文件路径创建文件对象
        * 2. public File(String parent, String child)	根据父路径名字符串和子路径名字符串创建文件对象
        * 3. public File(File  parent, String child)	根据父路径对应文件对象和子路径名字符串创建文件对象
        * */

        // public File(String pathname)	根据文件路径创建文件对象
        File file01 = new File("./src/main/resources/files/file01.txt");
        // 判断此路径文件是否存在
        System.out.println(file01.exists());
        // 获取文件名称
        System.out.println(file01.getName());
        // 获取文件的相对路径
        System.out.println(file01.getPath());
        // 获取文件的绝对路径
        System.out.println(file01.getAbsolutePath());
        // 获取文件的长度
        System.out.println(file01.length());
    }
}
/* 控制台输出:
true
file01.txt
.\src\main\resources\files\file01.txt
D:\code\workspace_java\base-learning\.\src\main\resources\files\file01.txt
61
*
* */
package cn.edu.njust.file;

import java.io.File;

public class Demo01 {
    public static void main(String[] args) {
        // 1.创建File对象 -- 绝对路径访问
        File file = new File("C:\\Users\\NJUST'er'wang's\\Pictures\\MyWallPaper\\02_WallPaper.jpg");
        // 获取文件的字节大小
        long size = file.length();
        System.out.println(size);

        // file对象支持绝对路径,也支持相对路径
        // 相对工程 从工程名开始
        File file1 = new File("day01/src/data.txt");
        long size1 = file1.length();
        System.out.println(size1);
    }
}

2.2 创建和删除文件

package cn.edu.njust.ioandfile;

import java.io.File;
import java.io.IOException;

/**
 * 创建和删除文件
 */
public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        /*
        * 创建或者删除文件
        * public boolean createNewFile()	创建一个新的空的文件
        * public boolean mkdir()	只能创建一级文件夹
        * public boolean mkdirs()	可以创建多级文件夹
        * public  boolean delete()	删除由此抽象路径名表示的文件或空文件夹
        * */

        // 可以传入一个空参,然后获取一个文件对象
        File file01 = new File("./src/main/resources/files/file02.txt");
        // 获取当前的工程路径
        System.out.println(file01.getCanonicalPath());
        // 该方法会根据获取File文件对象时传入的路径创建对象
        boolean newFile = file01.createNewFile();
        if (newFile) System.out.println("创建文件成功!");
        else System.out.println("创建文件失败!");

        // 根据 File 文件创建时的路径删除文件
        boolean isDelete = file01.delete();
        if (isDelete) System.out.println("删除文件成功");
        else System.out.println("删除文件失败");
    }


}
/* 控制台输出:
创建文件成功!
删除文件成功

*/

2.3 获取文件列表

package cn.edu.njust.ioandfile;

import java.io.File;
import java.util.Arrays;

/**
 * 获取文件列表
 */
public class FileDemo03 {
    public static void main(String[] args) {
        /*
        * public String[] list()	获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
        * public File[] listFiles()(常用)	获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        * */

        File file01 = new File("./src/main/resources/files/");
        // 验证当前路径获取的对象是否时文件夹
        System.out.println(file01.isDirectory());
        // 获取当前目录下的所有文件名
        String[] fileList = file01.list();
        System.out.println(Arrays.toString(fileList));

        // 获取当前文件下的所有文件对象
        File[] files = file01.listFiles();
        System.out.println(Arrays.toString(files));

    }
}

/* 控制台输出:
true
[file01.txt]
[.\src\main\resources\files\file01.txt]
*/

2.4 递归搜索文件

package cn.edu.njust.file;

import java.io.File;

public class Demo03 {
    public static void main(String[] args) {
        // 递归找文件
        searchFile(new File("D:/"),"Season.java");

    }

    /**
     *
     * @param dir 被搜索源目录
     * @param fileName 被搜索文件名
     */
    public static void searchFile(File dir,String fileName){
        // 判断是否是文件夹
        if (dir != null) {
            // 提取当前文件下的一级文件对象
            File[] files = dir.listFiles();
            // 判断是否存在一级文件
            if (files != null && files.length>0) {
                for (File file: files) {
                    // 判断一级文件类型
                    if (file.isFile()) {
                        // 判断是否是所需要的文件名
                        if (file.getName().equals(fileName)) {
                            System.out.println("文件已找到");
                            System.out.println("路径为:" + file.getAbsolutePath());
                            return;
                        }
                    }else {
                        // 是文件夹时
                        searchFile(file,fileName);
                    }
                }
            }
        } else {
            System.out.println("该文件为空");
        }

    }
}

3 常用方法汇总

3.1 构造器

方法名说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent, String child)根据父路径名字符串和子路径名字符串创建文件对象
public File(File  parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象

3.2 常用 API

方法名说明
public  boolean isDirectory()判断此路径名表示的File是否为文件夹
public  boolean isFile()判断此路径名表示的File是否为文件
public  boolean  exists()判断此路径名表示的File是否存在
public long  length()返回文件的大小(字节数量)
public  String getAbsolutePath()返回文件的绝对路径
public  String getPath()返回定义文件时使用的路径
public  String getName()返回文件的名称,带后缀
public  long lastModified()返回文件的最后修改时间(时间毫秒值)

3.3 删除与创建

方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()只能创建一级文件夹
public boolean mkdirs()可以创建多级文件夹
public  boolean delete()删除由此抽象路径名表示的文件或空文件夹

3.4 获取并遍历的方法

方法名称说明
public String[] list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
public File[] listFiles()(常用)获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拜见老天師

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值