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 @ 2022-06-26 10:32  藤原豆腐渣渣  阅读(194)  评论(0编辑  收藏  举报