Files的常用方法都有哪些

Files的常用方法都有哪些

Java的java.nio.file包提供了Files工具类,用于对文件和目录进行常见的操作。以下是一些Files类的常用方法,以及简单的代码演示:

  1. 复制文件或目录:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesCopyExample {
        public static void main(String[] args) {
            Path sourcePath = Paths.get("source.txt");
            Path targetPath = Paths.get("target.txt");
    
            try {
                Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
                System.out.println("文件复制成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  2. 移动文件或目录:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesMoveExample {
        public static void main(String[] args) {
            Path sourcePath = Paths.get("source.txt");
            Path targetPath = Paths.get("target.txt");
    
            try {
                Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
                System.out.println("文件移动成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  3. 删除文件或目录:

    注意一下哈,文件和目录皆可以使用该方法进行删除

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesDeleteExample {
        public static void main(String[] args) {
            Path filePath = Paths.get("file.txt");
            try {
                Files.delete(filePath);
                System.out.println("文件删除成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  4. 创建目录:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesCreateDirectoryExample {
        public static void main(String[] args) {
            Path directoryPath = Paths.get("new_directory");
    
            try {
                Files.createDirectory(directoryPath);
                System.out.println("目录创建成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  5. 读取文件内容:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesReadExample {
        public static void main(String[] args) {
            Path filePath = Paths.get("file.txt");
    
            try {
                String content = Files.readString(filePath);
                System.out.println("文件内容:" + content);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  6. 检查文件或目录是否存在:

    在读取文件的时候,最好使用该方法进行判断,避免路径错误或者文件不存在产生异常报错

    java 复制代码
    import java.nio.file.*;
    
    public class FilesExistsExample {
        public static void main(String[] args) {
            Path path = Paths.get("file.txt");
            boolean exists = Files.exists(path);
            System.out.println("文件是否存在:" + exists);
        }
    }
  7. 获取文件属性:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    import java.nio.file.attribute.BasicFileAttributes;
    
    public class FilesAttributesExample {
        public static void main(String[] args) {
            Path path = Paths.get("file.txt");
    
            try {
                BasicFileAttributes attributes = Files.readAttributes(path, BasicFileAttributes.class);
                System.out.println("创建时间:" + attributes.creationTime());
                System.out.println("最后修改时间:" + attributes.lastModifiedTime());
                System.out.println("是否是目录:" + attributes.isDirectory());
                System.out.println("文件大小:" + attributes.size());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  8. 写入文件内容:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    
    public class FilesWriteExample {
        public static void main(String[] args) {
            Path filePath = Paths.get("file.txt");
    
            try {
                String content = "Hello, Files!";
                Files.write(filePath, content.getBytes());
                System.out.println("文件写入成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  9. 读取所有行:

    java 复制代码
    import java.io.IOException;
    import java.nio.file.*;
    import java.util.List;
    
    public class FilesReadAllLinesExample {
        public static void main(String[] args) {
            Path filePath = Paths.get("file.txt");
    
            try {
                List<String> lines = Files.readAllLines(filePath);
                lines.forEach(System.out::println);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

每一次的努力都是一次成长,每一次的尝试都是一次进步。即便面对逆境,也请记得在每一个困难的背后,都有成长和收获的机会等待着你。生活就像一幅画,每一天都是一笔一笔的色彩,而你就是这画布上最美的一抹光芒。
让我们携手迎接新的挑战,共同创造更加美好的未来。愿你的生活如同阳光一样明媚,充满温馨和希望。在这个瞬息万变的世界里,保持一颗积极阳光的心,你将发现,每一天都是一个奇迹的开始。

相关推荐
历程里程碑11 分钟前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
程序员泠零澪回家种桔子30 分钟前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构
CodeCaptain39 分钟前
nacos-2.3.2-OEM与nacos3.1.x的差异分析
java·经验分享·nacos·springcloud
源代码•宸1 小时前
大厂技术岗面试之谈薪资
经验分享·后端·面试·职场和发展·golang·大厂·职级水平的薪资
Anastasiozzzz2 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
骇客野人2 小时前
通过脚本推送Docker镜像
java·docker·容器
铁蛋AI编程实战2 小时前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
晚霞的不甘2 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
马猴烧酒.2 小时前
【面试八股|JVM虚拟机】JVM虚拟机常考面试题详解
jvm·面试·职场和发展
SunnyDays10112 小时前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列