java 7 新的NIO API新增了FileSystem和FileStore相关API,最主要的是Path.java类,主要是我们常见的文件的一些相关操作,这个Path是NIO IO操作的基础,我们可以定义一个文件路径,对路径的相关操作等,
我们先看下java7 NIO 2新增的API:
我们看下这个API使用的示例:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
//NIO 2 file APi filesystem filestore
public class NIO2File {
public static void main(String[] args) {
try {
// FileSystems.getDefault().getPath(first, more)
Path path = Paths.get(System.getProperty("user.home"), "www",
"pyweb.settings");
Path real_path = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
System.out.println("Path to real path: " + real_path);
System.out.println("Number of name elements in path: "
+ path.getNameCount());
for (int i = 0; i < path.getNameCount(); i++) {
System.out.println("Name element " + i + " is: "
+ path.getName(i));
}
System.out.println("Subpath (0,3): " + path.subpath(0, 3));
File path_to_file = path.toFile();
Path file_to_path = path_to_file.toPath();
System.out.println("Path to file name: " + path_to_file.getName());
System.out.println("File to path: " + file_to_path.toString());
Path base = Paths.get(System.getProperty("user.home"), "www",
"pyweb.settings");
// resolve AEGON.txt file
Path path1 = base.resolve("django.wsgi");
System.out.println(path1.toString());
Path path2 = base.resolveSibling(".bashrc");
System.out.println(path2.toString());
Path path01_to_path02 = path1.relativize(path2);
System.out.println(path01_to_path02);
try {
boolean check = Files.isSameFile(path1.getParent(),
path2.getParent());
if (check) {
System.out.println("The paths locate the same file!"); // true
} else {
System.out
.println("The paths does not locate the same file!");
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
boolean sw = path1.startsWith("/rafaelnadal/tournaments");
boolean ew = path1.endsWith("django.wsgi");
System.out.println(sw);
System.out.println(ew);
for (Path name : path1) {
System.out.println(name);
}
} catch (NoSuchFileException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
}
}
输出:
Path to real path: /home/weijianzhongwj/www/pyweb.settings
Number of name elements in path: 4
Name element 0 is: home
Name element 1 is: weijianzhongwj
Name element 2 is: www
Name element 3 is: pyweb.settings
Subpath (0,3): home/weijianzhongwj/www
Path to file name: pyweb.settings
File to path: /home/weijianzhongwj/www/pyweb.settings
/home/weijianzhongwj/www/pyweb.settings/django.wsgi
/home/weijianzhongwj/www/.bashrc
../../.bashrc
The paths does not locate the same file!
false
true
home
weijianzhongwj
www
pyweb.settings
django.wsgi
API很类似linux上的文件操作命令,新增的unix fifilesystem等。
分享到:
相关推荐
通过对《Pro Java 7 NIO2》中Path类的学习,我们可以看到NIO.2 API为Java开发者提供了强大而灵活的文件系统操作工具。从简单的路径构建到复杂的文件属性访问,Path类及其相关API为Java程序提供了处理文件和目录的...
### Java-NIO2教程知识点详解 #### I/O发展简史 - **JDK1.0-1.3**: 在此期间,Java的I/O模型主要依赖于...这只是Java NIO2中众多强大功能之一,通过这些新的API,开发人员可以更高效、简洁地处理文件系统相关的操作。
根据提供的文件信息,“Pro Java 7 NIO.2.pdf”由Anghel Leonard于2011年编写,主要介绍了Java 7中的新输入/输出(NIO)API,特别是NIO.2(JSR 203)所带来的增强功能。这本书通过一系列章节详细讲解了如何使用NIO.2...
在Java 7的NIO2(JSR203:Java平台上的更多新I/O API)更新中,`java.nio.file.Path` 类成为了核心组件之一,为开发者提供了更高效、更直观的文件系统操作接口。本文将详细解析 `Path` 类的功能与应用,帮助读者掌握...
1. 改进的文件系统接口(File API):引入了java.nio.file包,其中包括Path、Paths、Files类,提供了更为现代和灵活的文件处理方法。 2. 异步I/O(Asynchronous I/O):提供了更多的异步操作支持,允许I/O操作在后台...
Java NIO(New IO)是Java 1.4版本引入的一个新模块,它提供了一种不同于标准Java IO API的处理I/O操作的方式。NIO的主要特点是面向缓冲区,非阻塞I/O,以及选择器,这些特性使得NIO在处理大量并发连接时表现出更高...
NIO2(Non-Blocking I/O)是一种高性能的I/O操作方式,自Java 7开始引入,提供了许多新的API和方法来处理文件操作。下面是对NIO2基础的介绍,包括文件路径、Path类简介、符号链接等知识点。 文件路径是指文件在文件...
Java NIO提供了一些类,如Files、Path和Paths,用于处理文件系统操作,如创建、删除、重命名文件,以及读取文件属性等。 6. **异步I/O(Asynchronous File Channel)**: Java NIO还引入了异步文件通道,支持异步...
Java.nio,全称为Java Non-blocking Input/Output,是Java平台从1.4版本开始引入的一套全新的I/O API,旨在替代传统的Java.io流API。它提供了更高效、更灵活的I/O操作方式,特别是在处理大量并发连接时,性能显著...
此外,Java NIO还包含文件系统API,如Files类,以及路径、文件属性和文件系统操作的支持。Path接口表示文件系统中的路径,而Files类提供了一系列静态方法,方便对文件进行操作,如创建、删除、读取和写入。 Java IO...
2. **多路复用器(NIO.2)**:增强了Java的非阻塞I/O功能,提供了新的`java.nio.file`包,支持文件系统操作,如遍历目录、文件属性查询等,以及Path、Files和Paths类的引入。 3. **字符串开关(String Switch)**:...
Java NIO,即Non-Blocking I/O,是Java在JDK 1.4引入的一套新的I/O API,旨在提供一种...随着Java版本的更新,NIO的功能也在不断完善,如NIO 2引入了异步文件I/O和Path API,进一步增强了Java在低级I/O操作上的表现。
`java.nio.file`库的引入使得Java在文件操作方面有了质的飞跃,它简化了API,提高了性能,并提供了更多现代文件系统所需的功能。无论是处理小文件还是大文件,无论是单线程还是多线程环境,`java.nio.file`都能提供...
通过学习《Apress.Pro.Java.7.NIO.2.2011》,开发者能够熟练掌握NIO和NIO 2的相关技术,从而在实际项目中编写出更高效、更稳定的并发程序,特别是对于网络编程和大数据处理等领域,NIO的知识是必不可少的。...