File的常用方法及IO实战

1. File的常用方法

Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。

2. IO流实战

1. 删除指定目录的文件

import java.io.*;

public class JavaTest {
    public static void main(String[] args) throws Exception {
        String filePath = "G:\\QQ视频20220227140120.mp4";

        File file = new File(filePath);

        delFile(file);
    }

    public static void delFile(File file) {
        if (!file.exists()) {
            System.out.println("文件不存在!!!");
            return;
        }

        boolean rs = file.delete();
        if (rs) {
            System.out.println("文件删除成功");
        } else {
            System.out.println("文件删除失败");
        }
    }
}

2. 实现分行向文件中写入数据

import java.io.*;

public class JavaTest {
    public static void main(String[] args) throws Exception {
        String filePath = "G://a.txt";

        File file = new File(filePath);

        try {
            if (!file.exists()) {
                file.createNewFile();
            }
            FileWriter fw = new FileWriter(file); // 建立文件输出流
            BufferedWriter bw = new BufferedWriter(fw); // 使用缓冲区数据流封装输出流

            for (int i = 0; i < 100; i++) {
                bw.write("Java交互管道---IO流".toCharArray()); // 写入数据到输出流

                bw.newLine(); // 写入换行符

                bw.flush(); // 刷新缓冲区
            }

            System.out.println("成功写入数据!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. IO流实现复制文件夹

import java.io.*;

public class JavaTest {
    public static void main(String[] args) throws Exception {
        File sourceFile = null;
        File desFile = null;

        String sourceFolder = "G:\\untitled";
        String copyFolder = "G:\\a";

        sourceFile = new File(sourceFolder);
        if (!sourceFile.isDirectory() || !sourceFile.exists()) {
            System.out.println("源文件夹不存在");
        } else {
            desFile = new File(copyFolder);
            desFile.mkdir();

            copy(sourceFile.listFiles(), desFile);
            System.out.println("文件夹复制成功!");
        }
    }

    public static void copy(File[] f1, File file) {
        if (!file.exists()) {
            file.mkdir();
        }

        for (int i = 0; i < f1.length; i++) {
            // 文件类型
            if (f1[i].isFile()) {
                 try {
                     FileInputStream fis = new FileInputStream(f1[i]);
                     FileOutputStream out = new FileOutputStream(
                             new File(
                                     file.getPath() + File.separator + f1[i].getName()
                             )
                     );

                     int count = fis.available();
                     byte[] data = new byte[count];
                     if ((fis.read(data)) != -1) {
                         out.write(data);
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
            }

            // 文件夹类型
            if (f1[i].isDirectory()) {
                File des = new File(file.getPath() + File.separator + f1[i].getName());
                des.mkdir();
                copy(f1[i].listFiles(), des);
            }
        }
    }
}

4. 递归读取文件夹的文件名

import java.io.*;

public class JavaTest {
    public static void listFile(String path) {
        if (path == null) {
            System.out.println("发生了空路径异常");
        }

        File[] files = new File(path).listFiles();
        if (files == null) {
            System.out.println("发生了空内容异常");
        }

        for (File file : files) {
            if (file.isFile()) {
                System.out.println(file.getName());
            } else if (file.isDirectory()) {
                System.out.println("Directory:" + file.getName());
                listFile(file.getPath());
            } else {
                System.out.println("Error");
            }
        }
    }

    public static void main(String[] args) throws Exception {
        JavaTest.listFile("G:\\a");
    }
}
上一篇:Asp.Net Coer 解决无法连接到Web 服务器“IIS Express”报错


下一篇:去掉复杂的逻辑计算,get一下Aviator吧