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