`

java 7 NIO2(1) Path类相关新API

    博客分类:
  • java
 
阅读更多

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等。

 

0
9
分享到:
评论

相关推荐

    Pro Java 7 NIO2

    通过对《Pro Java 7 NIO2》中Path类的学习,我们可以看到NIO.2 API为Java开发者提供了强大而灵活的文件系统操作工具。从简单的路径构建到复杂的文件属性访问,Path类及其相关API为Java程序提供了处理文件和目录的...

    Java-NIO2教程

    ### Java-NIO2教程知识点详解 #### I/O发展简史 - **JDK1.0-1.3**: 在此期间,Java的I/O模型主要依赖于...这只是Java NIO2中众多强大功能之一,通过这些新的API,开发人员可以更高效、简洁地处理文件系统相关的操作。

    Pro Java 7 NIO.2.pdf

    根据提供的文件信息,“Pro Java 7 NIO.2.pdf”由Anghel Leonard于2011年编写,主要介绍了Java 7中的新输入/输出(NIO)API,特别是NIO.2(JSR 203)所带来的增强功能。这本书通过一系列章节详细讲解了如何使用NIO.2...

    PRO JAVA 7 NIO2

    在Java 7的NIO2(JSR203:Java平台上的更多新I/O API)更新中,`java.nio.file.Path` 类成为了核心组件之一,为开发者提供了更高效、更直观的文件系统操作接口。本文将详细解析 `Path` 类的功能与应用,帮助读者掌握...

    Java IO, NIO and NIO.2

    1. 改进的文件系统接口(File API):引入了java.nio.file包,其中包括Path、Paths、Files类,提供了更为现代和灵活的文件处理方法。 2. 异步I/O(Asynchronous I/O):提供了更多的异步操作支持,允许I/O操作在后台...

    java nio 读文件

    Java NIO(New IO)是Java 1.4版本引入的一个新模块,它提供了一种不同于标准Java IO API的处理I/O操作的方式。NIO的主要特点是面向缓冲区,非阻塞I/O,以及选择器,这些特性使得NIO在处理大量并发连接时表现出更高...

    NIO2基础介绍

    NIO2(Non-Blocking I/O)是一种高性能的I/O操作方式,自Java 7开始引入,提供了许多新的API和方法来处理文件操作。下面是对NIO2基础的介绍,包括文件路径、Path类简介、符号链接等知识点。 文件路径是指文件在文件...

    Java NIO测试示例

    Java NIO提供了一些类,如Files、Path和Paths,用于处理文件系统操作,如创建、删除、重命名文件,以及读取文件属性等。 6. **异步I/O(Asynchronous File Channel)**: Java NIO还引入了异步文件通道,支持异步...

    Java.nio

    Java.nio,全称为Java Non-blocking Input/Output,是Java平台从1.4版本开始引入的一套全新的I/O API,旨在替代传统的Java.io流API。它提供了更高效、更灵活的I/O操作方式,特别是在处理大量并发连接时,性能显著...

    Java IO与NIO文档

    此外,Java NIO还包含文件系统API,如Files类,以及路径、文件属性和文件系统操作的支持。Path接口表示文件系统中的路径,而Files类提供了一系列静态方法,方便对文件进行操作,如创建、删除、读取和写入。 Java IO...

    Java7 最新原版API

    2. **多路复用器(NIO.2)**:增强了Java的非阻塞I/O功能,提供了新的`java.nio.file`包,支持文件系统操作,如遍历目录、文件属性查询等,以及Path、Files和Paths类的引入。 3. **字符串开关(String Switch)**:...

    Java NIO原理解析

    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 库介绍.pdf

    `java.nio.file`库的引入使得Java在文件操作方面有了质的飞跃,它简化了API,提高了性能,并提供了更多现代文件系统所需的功能。无论是处理小文件还是大文件,无论是单线程还是多线程环境,`java.nio.file`都能提供...

    Apress.Pro.Java.7.NIO.2.2011

    通过学习《Apress.Pro.Java.7.NIO.2.2011》,开发者能够熟练掌握NIO和NIO 2的相关技术,从而在实际项目中编写出更高效、更稳定的并发程序,特别是对于网络编程和大数据处理等领域,NIO的知识是必不可少的。...

Global site tag (gtag.js) - Google Analytics