Java Path和Files工具类

 

jDK1.7引入了新的IO操作类,java.nio.file包下的Path接口和Files类。

 

Path接口:

  (1)Path表示的是一个目录名序列,其后还可以跟一个文件名,路径第一个部件是根部件时

     就是绝对路径,例如(/或C:\\)。是否可以访问根部件取决与文件系统。

  (2)以根部件开始就是绝对路径,否则是相对路径

  (3)Paths的静态方法get()接受一个或多个字符,字符之间使用系统默认的文件分隔符,UNIX

     使用 / ,windows使用  \\  ,这就解决了跨平台的问题。

 

Files类:

  此类提供大量方法,快速实现文件/目录的创建、复制、移动、删除以及文件读写操作。

 

代码示例:

复制代码
package com.seven.javaSE;

import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.nio.file.StandardOpenOption;

public class Path_Files_demo {
    public static void main(String[] args) {
        File file = new File("c:\\\\TestFile\\\\hello.txt");
        
        //获取路径方式一
        Path p1 = Paths.get("c:\\TestFile","hello.txt");
        Path p2 = Paths.get("c:\\TestFile\\hello.txt");
        System.out.println(p1);  //c:\TestFile\hello.txt
        System.out.println(p2);  //c:\TestFile\hello.txt
        
        //获取路径方式二
        Path p3 = file.toPath();
        System.out.println(p3); //c:\TestFile\hello.txt
        
        //获取路径方式三
        Path p4 = FileSystems.getDefault().getPath("C:\\TestFile\\target.txt");
        System.out.println(p4);  //c:\TestFile\hello.txt
        
//        Files工具类
        
        try {
            //Files读取文件
            byte [] rBytes = Files.readAllBytes(p4);
            System.out.println(new String(rBytes));
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        
        String info = "Files提供的静态方法很强大";
        try {
            //Files写入文件
            Files.write(p1, info.getBytes(), StandardOpenOption.WRITE);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        
        try {
            //复制文件
            Files.copy(p1, p4,StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
//        try {
//            //移动文件
//            Files.move(p1, Paths.get("C:\\TestFile\\move\\move.txt"), StandardCopyOption.REPLACE_EXISTING );
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        
        try {
            //删除文件
            Files.deleteIfExists(Paths.get("C:\\TestFile\\a.txt"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        try {
            //创建文件夹
            Files.createDirectory(Paths.get("C:\\TestFile\\new_dir\\3"));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
复制代码

 

posted @   藤原豆腐渣渣  阅读(197)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示