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();
            }
        }
    }

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

相关推荐
㳺三才人子5 小时前
初探 Flask
后端·python·flask·html
星栈独行5 小时前
我在 Rust 全栈项目里用 JWT 做无状态认证
开发语言·后端·rust·前端框架·开源·github·web
Lei活在当下5 小时前
先用起来,再理解,关于协程Coroutine应该知道的事
android·java·jvm
Java爱好狂.5 小时前
Java程序员体系化学习路线(2026最新版)
java·后端·java面试·java架构师·java程序员·java八股文·java学习路线
陈随易6 小时前
Redis 8.8发布,一定要更新
前端·后端·程序员
tongluowan0076 小时前
以ReentrantLock为例解释AQS的工作流程
java·模板方法模式·aqs·reentrantlock
装不满的克莱因瓶6 小时前
SpringBoot 如何将 lib 目录中jar包打包进最终的jar包里面
spring boot·后端·maven·jar·mvn
Raink老师6 小时前
【AI面试临阵磨枪-62】设计基于 RAG 的内部知识库问答平台(多租户、权限、文件上传、实时更新)
人工智能·面试·职场和发展
ltl7 小时前
Transformer 原论文实验结果:为什么 28.4 BLEU 足以改写路线图
后端
身如柳絮随风扬7 小时前
Java 项目打包与部署完全指南:JAR vs WAR,从构建到运行
java·firefox·jar