File类

1、IO操作
(1)I的概念:input,输入流,读取操作。
(2)O的概念:output,输出流,写入操作。
在这里插入图片描述
2、File类
(1)API介绍
在这里插入图片描述
(2)构造方法
在这里插入图片描述

import java.io.File;

public class Demo2_File {

    public static void main(String[] args) {
        //构造方法
        //File(String)
        File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
        System.out.println(file);// /Users/jim/Desktop/Work/temp/java1221/test.txt

        //注意:File类对象不会验证该路径是否正确。

        //File(String,String) 用于方便读取一个文件夹下多个文件。
        File file2  = new File("/Users/jim/Desktop/Work/temp/java1221/","test.txt");
        System.out.println(file2);// /Users/jim/Desktop/Work/temp/java1221/test.txt


        //File(File,String) 如果需要对目录路径进行File对象操作,这是可以先实例化该目录成为File对象执行完毕后,再生成文件对象
        File dir = new File("/Users/jim/Desktop/Work/temp/java1221/");
        File file3 = new File(dir,"test.txt");
        System.out.println(file3);// /Users/jim/Desktop/Work/temp/java1221/test.txt 
    }
}

(3)创建功能方法
在这里插入图片描述

import java.io.File;
import java.io.IOException;
public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //创建功能方法
        //创建目录
        File file = new File("/Users/jim/Desktop/Work/temp/java1221");
        //.mkdir() 创建一个目录,如果创建的目录不存在返回true,创建目录已存在或前方路径不存在返回false
        boolean mkdir = file.mkdir();
        System.out.println(mkdir);//true

        //.mkdirs() 创建多个目录,如果创建的目录不存或前方路径不存在在返回true,创建目录已存在返回false
        File file2 = new File("/Users/jim/Desktop/Work/temp/java12210/java");
        boolean mkdirs = file2.mkdirs();
        System.out.println(mkdirs);//true/fasle/true

        //创建文件
        File file3 = new File("/Users/jim/Desktop/Work/temp/java12210/test.txt");
        /*
            .createNewFile() 创建文件
            返回结果
            true: 前方路径存在,但文件不存在,文件创建成功。
            false: 前方路径存在,文件也存在,文件创建失败。
            IOException: 前方路径不存在,报异常。
         */
        boolean newFile = file3.createNewFile();
        System.out.println(newFile);
        //method_构造方法();
    }
}

(4)删除功能方法
在这里插入图片描述

import java.io.File;
import java.io.IOException;
public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //删除方法
        File file = new File("/Users/jim/Desktop/Work/temp/java12210/test.txt");
        //.delete()删除文件,如果前方路径存在且文件存在,则删除成功返回true.前方路径存在但文件不存在或前方路径不存在,则删除失败返回false
        boolean delete = file.delete();
        System.out.println(delete);//true

        //注意:delete()方法不走回收站,删除时要三思。

        File file2 = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");
        //deleteOnExit() 在程序结束后删除文件
        file2.deleteOnExit();

        System.out.println("程序结束");
    }
}

(5)获取功能方法
在这里插入图片描述

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

public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //获取方法
        File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
        File absoluteFile = file.getAbsoluteFile();
        //getAbsoluteFile/getAbsolutePath:获取文件/目录绝对路径文件对象/字符串
        System.out.println("getAbsoluteFile:" + absoluteFile);// getAbsoluteFile:/Users/jim/Desktop/Work/temp/java1221/test.txt
        String absolutePath = file.getAbsolutePath();
        System.out.println("getAbsolutePath:" + absolutePath);// getAbsolutePath:/Users/jim/Desktop/Work/temp/java1221/test.txt

        //getCanonicalFile/getCanonicalPath:获取文件/目录相对路径文件对象/字符串
        File canonicalFile = file.getCanonicalFile();//getCanonicalFile:/Users/jim/Desktop/Work/temp/java1221/test.txt
        System.out.println("getCanonicalFile:" + canonicalFile);//getCanonicalPath:/Users/jim/Desktop/Work/temp/java1221/test.txt
        String canonicalPath = file.getCanonicalPath();
        System.out.println("getCanonicalPath:" + canonicalPath);

        //getParentFile/getParent:获取文件/目录前方路径的文件对象/字符串
        File parentFile = file.getParentFile();
        System.out.println("getParentFile:" + parentFile);//getParentFile:/Users/jim/Desktop/Work/temp/java1221
        String parent = file.getParent();
        System.out.println("getParent:" + parent);//getParent:/Users/jim/Desktop/Work/temp/java1221

        //getFreeSpace():获取文件所在硬盘的空闲空间大小
        long freeSpace = file.getFreeSpace();
        System.out.println("getFreeSpace:" + freeSpace);//getFreeSpace:52775346176
        //getTotalSpace():获取文件所在硬盘空间的总大小
        long totalSpace = file.getTotalSpace();
        System.out.println("getTotalSpace:" + totalSpace);//getTotalSpace:121018208256
        //getUsableSpace():获取文件所在硬盘的可用空间大小
        long usableSpace = file.getUsableSpace();
        System.out.println("getUsableSpace:" + usableSpace);//getUsableSpace:39060439040

        //getPath():获取文件/目录路径的字符串
        String path = file.getPath();
        System.out.println("getPath:" + path);//getPath:/Users/jim/Desktop/Work/temp/java1221/test.txt

        //getName():获取文件/目录名字符串
        String name = file.getName();
        System.out.println("getName:" + name);//getName:test.txt
        //length():获取文件大小
        long length = file.length();
        System.out.println("length:" + length);//length:181
        //method_删除方法();
        //method_创建方法();
        //method_构造方法();
    }
}

(6)判断功能方法
在这里插入图片描述

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

public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //判断方法
        File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
        boolean exists = file.exists();
        System.out.println(exists);//true

        boolean file1 = file.isFile();
        System.out.println(file1);//true

        boolean directory = file.isDirectory();
        System.out.println(directory);//false

        boolean hidden = file.isHidden();
        System.out.println(hidden);//false

        //应用
        File dir = new File("/Users/jim/Desktop/Work/temp/java12210/");
        File file3 = new File(dir,"test.txt");
        if(!dir.exists()){
            dir.mkdirs();
        }
        file3.createNewFile();
        System.out.println("创建文件成功");
    }
}

(7)获取子目录/子文件功能方法
在这里插入图片描述


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

public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //获取子目录/子文件方法
        File file = new File("/Users/jim/Desktop/Work/temp");
        String[] list = file.list();
        for (int i = 0; i < list.length; i++) {
            System.out.println(list[i]);
        }

        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i].getName());
        }
    }
}


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

public class Demo2_File {

    public static void getSubFile(File file) {
        File[] list = file.listFiles();
        for (int i = 0; i < list.length; i++) {
            if (list[i].isDirectory()) {
                getSubFile(list[i]);//递归调用
            } else {
                System.out.println(list[i]);
            }
        }
    }

    public static void main(String[] args) throws IOException {
        //需求:获取一个目录下所有子目录及文件
        //分析:{构造File对象,提供路径
        //     File对象 .listFiles() 获取该目录下子目录/文件}
        //     遍历子目录/文件,判断是目录,再次{将目录构建File了对象
        //     .listFiles()...}
        //结论:方法自己调用自己,递归调用。直接递归 A>>A /间接递归 A>>B>>C>>A
        //     注意:递归调用必须具有可跳出条件,否则类似于死循环,出现内存溢出问题。
        File file = new File("/Users/jim/Desktop/Work/temp");
        getSubFile(file);
}
}

(8)移动/改名功能方法
在这里插入图片描述

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

public class Demo2_File {

    public static void main(String[] args) throws IOException {
        //移动/重命名方法
        File file = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");

        //File dest = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");

        File dest2 = new File("/Users/jim/Desktop/Work/temp/demo.txt");
        boolean b = file.renameTo(dest2);
        System.out.println(b);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值