Netty——Path和Files类中方法说明与代码示例
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty——Path和Files类中方法说明与代码示例相关的知识,希望对你有一定的参考价值。
目录
一、Path类
1.1、Path类的概述
- jdk7 引入了 Path 和 Paths 类
- Path 用来表示文件路径。
- Paths 是工具类,用来获取 Path 实例。
1.2、Path类的代码示例
-
相对路径 使用 user.dir 环境变量来定位 1.txt
Path source = Paths.get("1.txt"); // 相对路径 使用 user.dir 环境变量来定位 1.txt
-
绝对路径 代表了 d:\\1.txt
Path source = Paths.get("d:\\\\1.txt");
-
绝对路径 同样代表了 d:\\1.txt
Path source = Paths.get("d:/1.txt");
-
代表了 d:\\data\\projects
Path projects = Paths.get("d:\\\\data", "projects");
-
.代表了当前路径; . .代表了上一级路径
Path path = Paths.get("d:\\\\data\\\\projects\\\\a\\\\..\\\\b"); System.out.println(path); System.out.println(path.normalize()); // 正常化路径
//输出结果 d:\\data\\projects\\a\\..\\b d:\\data\\projects\\
二、Files类
2.1、 检查文件是否存在代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) checkFileExists(); /** * 检查文件是否存在 * */ public static void checkFileExists() Path path = Paths.get("file/1.txt"); boolean exists = Files.exists(path); System.out.println("文件是否存在:"+exists);
-
输出结果
2.2、 创建一级目录代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) createDirect(); /** * 创建一级目录 * 如果目录已存在,会抛异常 FileAlreadyExistsException * 不能一次创建多级目录,否则会抛异常 NoSuchFileException * */ public static void createDirect() Path path = Paths.get("file/d1"); try Files.createDirectory(path); catch (IOException e) e.printStackTrace();
-
输出结果
2.3、 创建多级目录代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) createMoreDirect(); /** * 创建多级目录 * */ public static void createMoreDirect() Path path = Paths.get("file/d2/d3"); try Files.createDirectories(path); catch (IOException e) e.printStackTrace();
-
输出结果
2.4、 拷贝文件代码示例
-
copy1.txt文件中内容如下:
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) copyFile(); /** * 拷贝文件 * 如果文件已存在,会抛异常 FileAlreadyExistsException * */ public static void copyFile() Path source = Paths.get("file/copy1.txt"); Path target = Paths.get("file/copy2.txt"); try Files.copy(source, target); catch (IOException e) e.printStackTrace();
-
输出结果
2.5、 拷贝文件(覆盖掉被拷贝文件中的内容)代码示例
-
修改copy1.txt文件中内容如下:
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) copyFile2(); /** * 拷贝文件 * 如果文件已存在,会抛异常 FileAlreadyExistsException * 如果希望用 source 覆盖掉 target文件中的内容,需要用 StandardCopyOption 来控制 * */ public static void copyFile2() Path source = Paths.get("file/copy1.txt"); Path target = Paths.get("file/copy2.txt"); try Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); catch (IOException e) e.printStackTrace();
-
输出结果
2.6、 移动文件代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) moveFile(); /** * 移动文件 * StandardCopyOption.ATOMIC_MOVE 保证文件移动的原子性 * */ public static void moveFile() Path source = Paths.get("file/copy1.txt"); Path target = Paths.get("file/d1/copy1.txt"); try Files.move(source, target, StandardCopyOption.ATOMIC_MOVE); catch (IOException e) e.printStackTrace();
-
输出结果
2.7、 删除文件代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) deleteFile(); /** * 删除文件 * 如果文件不存在,会抛异常 NoSuchFileException * */ public static void deleteFile() Path target = Paths.get("file/d1/copy1.txt"); try Files.delete(target); catch (IOException e) e.printStackTrace();
-
输出结果
2.8、 删除目录代码示例
-
代码示例
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; /** * @description: * @author: xz * @create: 2022-07-26 21:50 */ public class TestFile public static void main(String[] args) deleteDirectory(); /** * 删除目录 * 如果目录还有内容,会抛异常 DirectoryNotEmptyException * */ public static void deleteDirectory() Path target = Paths.get("file/d2/d3"); try Files.delete(target); catch (IOException e) e.printStackTrace();
-
输出结果
以上是关于Netty——Path和Files类中方法说明与代码示例的主要内容,如果未能解决你的问题,请参考以下文章
Netty——Files类的walkFileTree方法遍历文件夹和文件夹下的文件
Netty——Files类的walkFileTree方法遍历文件夹和文件夹下的文件
Netty——Files类的walkFileTree方法删除多级目录
Netty——Files类的walkFileTree方法删除多级目录