IO(file类的增删改查)、文件的递归遍历

本文介绍了Java中的File类用于文件和目录操作的基本方法,包括获取文件属性、创建、删除、重命名文件以及递归遍历文件系统。通过示例展示了如何创建新文件、删除文件、改变文件名以及列出目录中的所有文件等操作,并讨论了使用File类进行文件路径处理和异常处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 保存文件或目录的各种属性,包括文件名、文件长度、最后修改时间、是否可读…
2 提供获得当前文件的路径名,判断指定文件是否存在,获得当前文件中所有文件列表、创建文件、删除文件、创建目录、删除目录等操作的方法
对于文件的增删改查
增:创建新文件、给文件里增加内容
删:删除文件
改:改变文件名、不是改变文件内容
查:查询文件路径、文件名、文件内容
File类没有默认构造方法,要使用必须传参,因为只有带参构造方法
要使用File类要引入import java.io.File;包

public File(String pathname)
public File(String parent,String child)
public File(File parent,String child)

pathname、child是指定文件名
parent指定目录名,目录名可以是字符串也可以是File对象
1 获取文件的绝对路径.getAbsolutePath()

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\");
    System.out.println(file.getAbsolutePath());
}
}

在这里插入图片描述
2 创建一个新的文件夹.mkdir(),就是给d盘下创建一个homeWork文件夹

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    file.mkdir();
}
}

3 创建一个新文件.createNewFile()
File file1=new File(file.getAbsolutePath(),“test.txt”);是为了链接起来路径,要使用createNewFile要catch异常,或者抛出异常;实现了给d:\homeWork文件夹下创建了一个test.txt文件

import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    //file.mkdir();
    File file1=new File(file.getAbsolutePath(),"test.txt");
    try {
        file1.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

4 删除文件.delete(),删除了test.txt文件,删除文件夹也可以使用该方法

import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    //file.mkdir();
    File file1=new File(file.getAbsolutePath(),"test.txt");
    try {
        file1.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    file1.delete();
}
}

5 查看指定文件是不是一个文件夹.isDirectory()返回Boolean类型

import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    file.mkdir();
    File file1=new File(file.getAbsolutePath(),"test.txt");
    try {
        file1.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(file.isDirectory());
}
}

6 查看指定文件是不是一个文件.isFile()返回Boolean类型

import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    file.mkdir();
    File file1=new File(file.getAbsolutePath(),"test.txt");
    try {
        file1.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(file1.isFile());
}
}

7 列出文件夹中的所有文件(包括文件夹和文件).listFiles()返回的是一个File[ ]类型
.List()也能列出文件夹的所有文件,返回的是String[ ]类型,不能get到文件的绝对路径,还是推荐使用.ListFile()

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork");
    File [] s=file.listFiles();
    for(File x: s){
        System.out.println(x.getAbsolutePath());
    }
}
}

在这里插入图片描述
8 获取文件的上一级路径.getParent()

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork\\test");
        System.out.println(file.getParent());
}
}

在这里插入图片描述
9 为文件重命名,返回Boolean类型,将d:\homeWork\下的xxx文件名改为aaa

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork\\xxx");
        System.out.println(file.renameTo(new File("d:\\homeWork\\aaa")));
    System.out.println(file.getAbsolutePath());
}
}

在这里插入图片描述
10 返回文件的大小,返回类型long,单位:字节

import org.junit.Test;
import java.io.File;
public class FirstClass {
@Test
public void fileTest(){
    File file=new File("d:\\homeWork\\test.txt");
        System.out.println(file.length());
}
}

在这里插入图片描述
11 文件的递归遍历

import java.io.File;
public class FirstClass {
public void traverseFolder2(String path) {
    File file = new File(path);
    if (file.exists()) {
        File[] files = file.listFiles();
        if (files.length == 0) {
            System.out.println("文件夹是空的!");
            return;
        } else {
            for (File file2 : files) {
                if (file2.isDirectory()) {
                    System.out.println("文件夹:" + file2.getAbsolutePath());
                    traverseFolder2(file2.getAbsolutePath());
                } else {
                    System.out.println("文件:" + file2.getAbsolutePath());
                }
            }
        }
    } else {
        System.out.println("文件不存在!");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值