File、IO流(一)

本文介绍了Java中File类的使用,包括File对象的创建、文件信息的获取、文件的创建与删除、遍历文件夹的方法。通过实例代码展示了如何判断文件类型、获取文件属性,以及如何创建、删除文件。此外,还探讨了File类的递归应用,如多级文件搜索,深入讲解了递归的概念、形式和应用场景,如阶乘计算、文件搜索等。
摘要由CSDN通过智能技术生成

(一)File、IO流概述以及File文件对象的创建

要存储数据,我们可以用一个变量存储一个数据、用一个数组存储一组数据、用一个对象存储一批数据、用一个集合存储几组数据。

(1)变量

int a = 55;

(2)数组

//int age[] = {24,36,45,75,62,35,35};
int[] age = new int[];

(3)对象

Student stu = new Student;

(4)集合        

List<String> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();

他们都是内存中的数据容器,方便运行时使用,不过在断电或者程序终止的时候会丢失。而想要长久的存储数据就需要用到硬盘了,再硬盘上存的数据不仅可以长久保存,而且断电或者程序终止了也不会丢失,而在计算机硬盘中文件是非常重要的存储方式,为了方便程序员操作文件或文件夹,java推出了一个File类方便操作。

File

(1)File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件也可以是文件夹)

(2)File提供的操作有获取文件信息的大小、文件名、修改时间,判断文件类型,创建和删除文件/文件夹等等。

(3)注意:File只对文件本身进行操作,不能读写文件里面存储的数据。

(二)常用方法及案例

常用方法1:判断文件类型、获取文件信息

实例代码如下:

package d1_file;

import java.io.File;
import java.text.SimpleDateFormat;

/*
* 掌握File提供的判断文件类型、获取文件信息的功能
* */
public class FileTest2 {
    public static void main(String[] args) {
        //1、创建文件对象,指代某个文件
        System.out.println("创建文件对象,指代某个文件");
        File file1 = new File("D:\\experiment\\aa.txt");
        System.out.println(file1);
        System.out.println("判断文件是否存在");
        System.out.println(file1.exists());
        System.out.println("判断是否是文件");
        System.out.println(file1.isFile());
        System.out.println("判断是否是文件夹");
        System.out.println(file1.isDirectory());
        System.out.println("获取文件名");
        System.out.println(file1.getName());
        System.out.println("获取文件长度");
        System.out.println(file1.length());
        System.out.println("获取文件最后的修改时间");
        long time = file1.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(time));
        System.out.println("获取创建文件对象时的文件路径");
        System.out.println(file1.getPath());//获取创建文件对象时的文件路径
        System.out.println("获取绝对路径");
        System.out.println(file1.getAbsolutePath());//获取绝对路径
    }
}

运行结果如下:

D:\java_jdk\jdk-17.0.9\bin\java.exe "-javaagent:C:\Users\hsh\AppData\Local\JetBrains\IntelliJ IDEA 2021.3\lib\idea_rt.jar=62555:C:\Users\hsh\AppData\Local\JetBrains\IntelliJ IDEA 2021.3\bin" -Dfile.encoding=UTF-8 -classpath D:\javaweb_program\java_hexin\out\production\file-io-app d1_file.FileTest2
创建文件对象,指代某个文件
D:\experiment\aa.txt
判断文件是否存在
true
判断是否是文件
true
判断是否是文件夹
false
获取文件名
aa.txt
获取文件长度
147
获取文件最后的修改时间
2024/03/14 10:35:49
获取创建文件对象时的文件路径
D:\experiment\aa.txt
获取绝对路径
D:\experiment\aa.txt

Process finished with exit code 0
 

常用方法2:创建文件、删除文件

演示代码如下:

package d1_file;

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

public class FileTest3 {
    public static void main(String[] args) throws IOException {
        System.out.println("创建一个新文件");
        File file1 = new File("D:\\experiment\\bb.txt");
        System.out.println(file1.createNewFile());

        System.out.println("创建新文件夹,只能创建一级文件夹");
        File file2 = new File("D:\\experiment\\bb");
        System.out.println(file2.mkdir());

        System.out.println("创建新文件夹,可以创建多个文件夹");
        File file3 = new File("D:\\experiment\\aa\\cc\\dd\\ee\\ff");
        System.out.println(file3.mkdirs());

        System.out.println("删除文件或空文件夹,不能删除非空文件夹");
        System.out.println(file2.delete());
        System.out.println(file1.delete());
        System.out.println(file3.delete());

    }
}

运行结果如下:

D:\java_jdk\jdk-17.0.9\bin\java.exe "-javaagent:C:\Users\hsh\AppData\Local\JetBrains\IntelliJ IDEA 2021.3\lib\idea_rt.jar=59469:C:\Users\hsh\AppData\Local\JetBrains\IntelliJ IDEA 2021.3\bin" -Dfile.encoding=UTF-8 -classpath D:\javaweb_program\java_hexin\out\production\file-io-app d1_file.FileTest3
创建一个新文件
true
创建新文件夹,只能创建一级文件夹
true
创建新文件夹,可以创建多个文件夹
true
删除文件或空文件夹,不能删除非空文件夹
true
true
true

Process finished with exi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值