Java 基础 (NIO)
2021/11/6 22:09:38
本文主要是介绍Java 基础 (NIO),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java NIO 概述
Java NIO (New IO,Non-Blocking IO) 是从 Java 1.4 版木开始引入的一套新的IO API,可以替代标准的 Java IO APi。NIO 与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。
Java API 中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。
早期的 Java 只提供了一个 File 类来访问文件系统,但 File 类的功能比较有限,所提供的方法性能也不高。而且,大多数方法在出错时仅返回失败,并不会提供异常信息。
NIO.2 为了弥补这种不足,引入了 Path 接口,代表一个平台无关的平台路径,描述了目录结构中文件的位置。Path 可以看成是 File类 的升级版木,实际引用的资源也可以不存在。
同时,NIO.2 在 java.nio.file 包下还提供了 Files、Paths 工具类,Files 包含了大量静态的工具方法来操作文件;Paths 则包含了两个返回 Path 的静态工厂方法。
PatchTest.java
package com.klvchen.java; import org.junit.Test; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; public class PatchTest { //如何使用 Paths 实例化 Path @Test public void test1(){ Path path1 = Paths.get("G:\\tmp\\nio\\hello.txt"); Path path2 = Paths.get("G:\\", "nio\\hello.txt"); System.out.println(path1); System.out.println(path2); Path path3 = Paths.get("G:\\", "nio"); System.out.println(path3); } @Test public void test2(){ Path path1 = Paths.get("G:\\", "tmp\\nio\\hello.txt"); Path path2 = Paths.get("hello.txt"); // String toString():返回调用Path对象的字符串表示形式 System.out.println(path1); // boolean startsWith(String path):判断是否以 path路径开始 System.out.println(path1.startsWith("G:\\tmp")); // boolean endsWith(String path): 判断是否以 path 路径结束 System.out.println(path1.endsWith("hello.txt")); // boolean isAbsolute():判断是否是绝对路径 System.out.println(path1.isAbsolute() + "~"); System.out.println(path2.isAbsolute() + "~"); // Path getParent() :返回Path对象包含整个路径,不包含Path对象指定的文件路径 System.out.println(path1.getParent()); System.out.println(path2.getParent()); // Path getRoot() :返回调用Path对象的根路径 System.out.println(path1.getRoot()); System.out.println(path2.getRoot()); // Path getFileName() :返回与调用 Path对象关联的文件名 System.out.println(path1.getFileName() + "~"); // Path getName(int idx) :返回指定索引位置 idx 的路径名称 for (int i = 0; i < path1.getNameCount(); i++) { System.out.println(path1.getName(i) + "*****"); } // Path toAbsolutePath():作为绝对路径返回调用Path对象 System.out.println(path1.toAbsolutePath()); System.out.println(path2.toAbsolutePath()); // Path resolve(Path p):合并两个路径,返回合并后的路径对应的Path对象 Path path3 = Paths.get("G:\\", "tmp"); Path path4 = Paths.get("nioo\\hi.txt"); path3 = path3.resolve(path4); System.out.println(path3); // File toFile(): 将 Path 转化为File类的对象 File file = path1.toFile(); // Path ---> File的转换 Path newPath = file.toPath(); //File ---> Path的转换 } }
导入第三方包:commons-io-2.5.jar
FileUtilsTest.java
package com.klvchen.java; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; public class FileUtilsTest { public static void main(String[] args) { File srcFile = new File("day10\\1.png"); File destFile = new File("day10\\3.png"); try { FileUtils.copyFile(srcFile, destFile); } catch (IOException e) { e.printStackTrace(); } } }
这篇关于Java 基础 (NIO)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27本地多文件上传的简单教程
- 2024-11-27低代码开发:初学者的简单教程
- 2024-11-27如何轻松掌握拖动排序功能
- 2024-11-27JWT入门教程:从零开始理解与实现
- 2024-11-27安能物流 All in TiDB 背后的故事与成果
- 2024-11-27低代码开发入门教程:轻松上手指南
- 2024-11-27如何轻松入门低代码应用开发
- 2024-11-27ESLint开发入门教程:从零开始使用ESLint
- 2024-11-27Npm 发布和配置入门指南
- 2024-11-27低代码应用课程:新手入门指南