0
点赞
收藏
分享

微信扫一扫

铂西学习日记---File类的基本操作

小龟老师 2022-01-28 阅读 50
java
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class demo_file {
    /**
     * File类表示一个文件或目录
     */
    public static void main(String[] args) throws IOException {
        // 参数为‘ C:\test.txt ’ 会报错,因为字符‘ \ ’表示转义字符,可以有以下三种方式
        //1. ‘ C:\\test.txt ’ 2.‘ C:/test.txt ’ 3.java中 File.separator 也可以表示为文件的分隔符 所以为:‘ "C:"+File.separator+"test.txt" ’
        File file = new File("C:\\test.txt");
        //判断文件存不存在
        if(file.exists()){
            System.out.println("文件已存在!");
        }else {
            //创建文件
            file.createNewFile();
            System.out.println("文件创建成功!");
        }

        //判断file对象是否为文件
        System.out.println(file.isFile());
        //判断file对象是否为文件夹
        System.out.println(file.isDirectory());

        //删除文件夹 - 文件夹不存在就返回false
        File file2 = new File("C:\\test");
        //删除文件夹时,如果文件夹是空文件夹则可以删除,如果文件夹不为空则不能删除掉
        boolean isDelFile2 = file2.delete();
        System.out.println(isDelFile2);

        //删除文件 - 文件不存在就返回false
        File file3 = new File("C:\\test\\1.txt");
        //删除文件可以直接删掉,所以要想删除一个文件夹需要先删除所有的文件
//        boolean isDelFile3 = file3.delete();
//        System.out.println(isDelFile3);

        //列出当前文件夹中的所有文件名 - 返回字符串数组
        String[] fileList = file2.list();
        System.out.println(Arrays.toString(fileList));

        //列出当前文件夹中的所有文件 - 返回File对象数组
        File[] fileList2 = file2.listFiles();
        for (File file1 : fileList2) {
            System.out.println(
                    "文件名:"+file1.getName()+
                    ",文件大小(多少字节?):"+ file1.length()+
                    ",文件相对路径:"+file1.getPath()+
                    ",文件绝对路径:"+file1.getAbsolutePath()+
                    ",是否为隐藏文件:"+file1.isHidden()+
                    ",是否为可读文件:"+file1.isHidden()
            );
            Date date = new Date(file1.lastModified());
            DateFormat df = new SimpleDateFormat("YYYY-MM-DD HH:mm:SS");
            System.out.print(",最近修改时间:" + df.format(date));
            System.out.println();
        }

        //当前项目目录下的文件 --- 相对路径是以当前目录为参照
        File file4 = new File("1.txt");
        System.out.println(
                "文件相对路径:"+file4.getPath()+
                ",文件绝对路径:"+file4.getAbsolutePath()
        );

        //当前项目目录下创建文件夹 --- 已有文件就返回False
        File file5 = new File("test");
        boolean isMkdirFile5 = file5.mkdir();
        System.out.println(isMkdirFile5);

        //重命名 和 移动文件夹
        boolean b = file3.renameTo(new File("C:\\1.txt"));
        System.out.println(b);

        //过滤文件 --- Lambda 表达式
        File[] files = file2.listFiles(pathname -> pathname.getName().endsWith(".txt"));
        for (File file1 : files) {
            System.out.println(file1.getName());
        }

//        file2.listFiles(new FileFilter() {
//            @Override
//            public boolean accept(File pathname) {
//                return pathname.getName().endsWith(".txt");
//            }
//        });
    }
}
举报

相关推荐

0 条评论