45 - Java IO流 File类 字节流FileInputStream,FileOutputStream 字符流FileReader,FileWriter 处理流(缓冲流,转换流)

File类

  • File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)

  • File类声明在java.io包下

  • File类中涉及到关于文件或文件目录的创建,删除,重命名,修改时间,文件大小等方法,并未涉及到写入或读取文件内容的操作.如果需要读取或写入文件内容,必须使用IO流来完成.

  • File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".

  • 相对路径说明:

    • IDEA中,如果开发使用JUnit中的单元测试方法去测试,相对路径即为读取Module下,如果使用main()测试,相对路径即为当前的Project下. 在Eclipse中,相对路径都是当前的Project下.

File类的使用:常用构造器

在这里插入图片描述

File类的使用:路径分隔符

在这里插入图片描述

package com.zzb;

import org.junit.Test;

import java.io.File;

public class Demo1 {
   

    /*
    1.如何创建File类的实例
        File(String filePath)
        File(String parentPath,String childPath)
        File(File parentFile,String childPath)

    2.
    相对路径:相对于某个路径下,指明的路径.
    绝对路径:包含盘符在内的文件或文件目录的路径

    3.路径分隔符
    windows://
    unix:/

     */
    @Test
    public void test() {
   
        //构造器1
        File file = new File("hello.txt");//相当于当前module
        File file1 = new File("D:\\file\\a.txt");

        System.out.println(file);
        System.out.println(file1);

        //构造器2
        File file2 = new File("D:\\file", "files");
        System.out.println(file2);

        //构造器3
        File file3 = new File(file2, "hi.txt");
        System.out.println(file3);

    }
}


File类的常用方法

File类的获取功能

在这里插入图片描述

package com.zzb;

import org.junit.Test;

import java.io.File;
import java.util.Date;

public class Demo2 {
   
    @Test
    public void test1() {
   
        File file1 = new File("hello.txt");
        File file2 = new File("F:\\TestIO\\hi.txt");

        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getPath());
        System.out.println(file1.getName());
        System.out.println(file1.getParent());
        System.out.println(file1.length());
        System.out.println(new Date(file1.lastModified()));

        System.out.println();

        System.out.println(file2.getAbsolutePath());
        System.out.println(file2.getPath());
        System.out.println(file2.getName());
        System.out.println(file2.getParent());
        System.out.println(file2.length());
        System.out.println(file2.lastModified());

    }

    @Test
    public void test2() {
   
        File file = new File("E:\\Music\\QQMusicPicture");
        String[] list = file.list();
        for (String s : list) {
   
            System.out.println(s);
        }
        File[] files = file.listFiles();
        for (File s : files) {
   
            System.out.println(s);
        }
    }

    /*
       public boolean renameTo(File dest):把文件重命名为指定的文件路径
       比如:file1.renameTo(file2)为例:
        要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在.
     */
    @Test
    public void test3() {
   
        File file1 = new File("hello.txt");
        File file2 = new File("F:\\TestIO\\hi.txt");

        boolean renameTo = file1.renameTo(file2);
        System.out.println(renameTo);

    }
}

File类的判断功能

在这里插入图片描述

package com.zzb;

import org.junit.Test;

import java.io.File;

public class Demo3 {
   

    @Test
    public void test1() {
   
        File file1 = new File("F:\\TestIO\\hi.txt");

        System.out.println(file1.isDirectory());
        System.out.println(file1.isFile());
        System.out.println(file1.exists());
        System.out.println(file1.canRead());
        System.out.println(file1.canWrite());
        System.out.println(file1.isHidden());
    }
}

File类的创建,删除功能

  • 要想删除成功,目录下不能有子文件和目录
    在这里插入图片描述
package com.zzb;

import org.junit.Test;

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

public class Demo4 {
   

    @Test
    public void test1() throws IOException {
   
        //文件的创建
        File file1 = new File("hi.txt");
        if (!file1.exists()) {
   
            file1.createNewFile();
            System.out.println("创建成功");
        } else {
   
            //文件存在
            file1.delete();
            System.out.println("删除成功");
        }
    }

    @Test
    public void test2() {
   
        //文件目录的创建
        File file1 = new File("F:\\TestIO\\IO1");
        boolean mkdir = file1.mkdir();
        if (mkdir) {
   
            System.out.println("创建成功1");
        }
        File file2 = new File("F:\\
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悠哉悠哉'游仙儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值