核心代码
比输出流 输入流操作更加的方便,代码更加的简介
主要使用Path、Paths、Files三个类
package jdk7io;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.*;
public class Jdk7IoOperate {
public static void main(String[] args) throws IOException {
// 原来获取文件的方法
File file = new File("C:\\Users\\lihw\\Desktop\\12.jpg");
// 使用 jdk 1.7 的 path
Path path1 = Paths.get("C:\\Users\\lihw\\Desktop", "12.jpg");
System.out.println("path1" + path1);
// 从 file 获取 path
String path2 = file.getPath();
System.out.println("path2" + path2);
// 用 FileSystems 获取path
Path path3 = FileSystems.getDefault().getPath("C:\\Users\\lihw\\Desktop", "12.jpg");
System.out.println("path3" + path3);
// 写文件
// Files 工具类 Paths
Path path4 = Paths.get("C:\\Users\\lihw\\Desktop\\test\\lhw.txt");
byte[] bytes = "小河流水哗啦啦".getBytes("gb2312");
Files.write(path4, bytes, StandardOpenOption.APPEND);
// 读文件
byte[] bytes1 = Files.readAllBytes(path4);
System.out.println(new String(bytes1, "gb2312"));
// 复制文件
try {
Files.copy(path3, Paths.get("C:\\Users\\lihw\\Desktop\\test\\12.jpg"), StandardCopyOption.REPLACE_EXISTING );
} catch (Exception e) {
e.printStackTrace();
}
// 移动文件
try {
Files.move(path3, Paths.get("C:\\Users\\lihw\\Desktop\\test\\12.jpg"), StandardCopyOption.REPLACE_EXISTING );
} catch (Exception e) {
e.printStackTrace();
}
// 删除文件
// Files.delete(path3);
// 如果存在就删除
// Files.deleteIfExists(path4);
// 创建文件和目录
Path path5 = Paths.get("C:\\Users\\lihw\\Desktop\\test\\11", "");
// 除了 最后一个部件 其他必须已经存在
Files.createDirectory(path5);
//创建路径中的中间目录, 能创建不存在的中间目录
Files.createDirectories(path5);
}
}