IO流--(file类)的理解和使用

IO流 -- (file类)的理解

File类的使用:
File类的一个对象:代表  "一个文件"  或者  "一个文件目录(俗话:文件夹)"

1- 如何创建File文件
    看下面--3种构造器

2-相对路径
  绝对路径

3- 路径分割符号
    window:\\
    unix:/

4-获取"文件jia"基本信息(基本)

5-` 获取某个"文件夹"内部文件`

6- 文件的移动

7-判断,某个文件的基本信息

8- 创建文件

9-创建目录--mkdir
    创建目录--mkdirs

IO流 -- (file类)的使用

public class File_Class {
    //获取信息
    public void test1() {
        //1- 构造器一
        File file1 = new File("hello.txt"); //相对路径
        File file2 = new File("/Users/ccc/Desktop/student.java/src/_366After/src/javeTeacher/IO");//绝对路径

        //2- 构造器二
        File file3 = new File("/Users/ccc/Desktop/student.java/src/_366After/src/javeTeacher", "IO");//文件夹
        File file4 = new File("/Users/ccc/Desktop/student.java/src/_366After/src/javeTeacher", "hi.txt");//文件

        //3- 构造器三
        File file5 = new File(file3, "hi.txt");

    }

    @Test
    //1- --------->  获取文件基本信息
    public void test2() {
        File file1 = new File("hello.txt"); //相对路径
        System.out.println(file1.getAbsoluteFile());//获取"绝对路径"
        System.out.println(file1.getPath());//获取文件的路径
        System.out.println(file1.getName());//获取文件名称
        System.out.println(file1.getParent());//获取上层文件目录的路径,如果无,返回null
        System.out.println(file1.length());//获取文件长度,不能获得目录的长度
        System.out.println(new Date(file1.lastModified()));//最后修改时间
    }

    @Test
    //-------- >  获取某个"文件夹"内部文件
    //2- 适用与 --文件夹
    //public  String[]  list();
    //public File[]  listFiles();
    public void test() {
        //1- 获取,该路径下的文件
        File file = new File("/Users/ccc/Desktop/student.java");
//内容一、
        String[] list = file.list();
        for (String file1 : list) {
            System.out.println("获取某个文件的信息,= " + file1);
        }

        System.out.println("————————————————————————");
//内容二、(推荐)
        File[] files = file.listFiles();
        for (Object file1 : files) {
            System.out.println("获取某个文件的信息,= " + file1);
        }
    }

    @Test
    //------->  文件的移动
    public void test3() {
        /*
        public boolean  renameTo(File dest):把文件转移到的另一个文件路径
           比如:file1.renameTo(file2)
               要保证true,file1在硬盘中是存在的,file2不能存在
         */

        //细节(file1,真是存在)---内容写:(某个文件夹下的--某个文件)
        File file1 = new File("/Users/ccc/Desktop/testIO/hi.txt");
        //细节(file2,这个文件不能存在,但是文件夹要真是存在,我下面写的"hiiii.txt",是迁移顺便改名,如果不想改名,和原文件名一样就可以)
        File file2 = new File("/Users/ccc/Desktop/testIO2/hiiii.txt");

        boolean b = file1.renameTo(file2);
        System.out.println(b);//true,转移成功
    }

    @Test
    // ----->  判断,某个文件的基本信息
    public void test4() {
        File file = new File("/Users/ccc/Desktop/testIO2/hiiii.txt");
        System.out.println(file.isDirectory()); //判断是否是文件目录
        System.out.println(file.isFile());//判断是否是文件
        System.out.println(file.exists());//判断是否可读
        System.out.println(file.canRead());//判断是否可写
        System.out.println(file.canWrite());//判断是否是隐藏文件
    }

    @Test
    //------>  创建文件
    /*
    creatNewFile:----创建"文件",如果文件存在,就不创建,返回false
     */
    public void test5() throws IOException {

        //1- 文件的创建
        File file = new File("hello.txt");
        if (!file.exists()) {
            file.createNewFile();
            System.out.println("创建成功");
        } else {
            file.delete();
            System.out.println("删除成功");
        }
    }

    /*
    总结:mkdir、mkdirs
            创建单个目录 --mkdir
            创建多个目录 --mkdirs
     */
    @Test
    public void test6() {
        //1- ---创建目录--mkdir
        /*
        mkdir():----创建"文件目录"如果文件目录存在,就不创建
         */
        File file1 = new File("/Users/ccc/Desktop/testIO/dao1");
        boolean mkdir = file1.mkdir();
        if (mkdir) {
            System.out.println("创建成功1");
        } else {
            System.out.println("你已经有该文件,不需要创建");
        }
    }

    @Test
    //2- 创建目录--mkdirs
    /*
    mkdirs():----创建"文件目录"如果文件目录存在,就不创建
     */
    public void test7() {
        //2- mkdir():和mkdirs():的区别
        File file2 = new File("/Users/ccc/Desktop/testIO/dao1/dao2");
        //1- 我要求在testIO/dao1/dao2,如果使用mkdir--> 会因为没有dao1,而创建失败
        boolean mkdir2 = file2.mkdir();
        if (mkdir2) {
            System.out.println("创建成功---mkdir");
        } else {
            System.out.println("创建失败");
        }

        //2- 我要求在testIO/dao1/dao2,如果使用mkdirs--> 不会因为没有dao1,而创建失败,他会创建dao1,再创建dao2
        File file3 = new File("/Users/ccc/Desktop/testIO/dao3/dao4");
        boolean mkdir3 = file3.mkdirs();
        if (mkdir3) {
            System.out.println("创建成功--mkdirs");
        } else {
            System.out.println("你已经有该文件,不需要创建");
        }


    }
}

posted on 2022-06-13 15:47  陈嘻嘻-  阅读(33)  评论(0编辑  收藏  举报

导航