`

【Java NIO 简例】Path

    博客分类:
  • Java
nio 
阅读更多

原文:《Java NIO Path

Java NIO Path 接口是 NIO 2 更新的一部分。其全称为 java.nio.file.Path。

 

一个 Path 实例表示文件系统中的一个路径(path)。path 可以是一个文件或目录。它可以是绝对路径,也可以是相对路径。
绝对路径包含了从文件系统根目录开始的完整路径。
相对路径包含了文件或目录相对于其它某个path的路径。
“相对路径”听起来有些使人困惑。别担心。我会在该 Java NIO Path 教程中解释相对路径的更多细节。

 

不要将文件系统路径 path 与 某些操作系统中的环境变量“path”搞混。java.nio.file.Path 接口与环境变量“path”没有任何关系。

 

java.nio.file.Path 接口与 java.io.File 类在很多地方有些相似,但也有一些小差异。在许多情况下,我们可以用 Path 接口替代 File 类。

 

创建一个 Path 实例

可通过 java.nio.file.Paths.get() 方法创建Path实例。例:

Path path = Paths.get("C:\\test\\file1.txt");

 

创建一个绝对路径 Path

将一个绝对路径(字符串)作为 Paths.get() 方法的参数就能得到一个绝对路径Path实例。

注意,因为操作系统路径格式的不同,此方法在 Windows 和 Unix (包括Linux、MacOS、FreeBSD 等)上行为也会有差异。

在 Unix 操作系统上,创建绝对路径“/opt/test/file1.txt”的Path实例可以如下方式:

Path path = Paths.get("/opt/test/file1.txt");

但该语句在Windows上的效果是创建一个相对于当前驱动盘的相对路径Path实例。
如果当前驱动盘是C盘,则所得Path实例对应的完整路径就是“C:/opt/test/file1.txt”

 

创建一个相对路径 Path

一个相对路径Path是指以某个Path实例为基础的 directory(目录)或 file(文件)。基础Path与相对路径Path的连接就是对应的完整路径(绝对路径)。

可以用 java.nio.file.Paths.get() 方法创建相对路径Path实例。例:

// 绝对路径为 C:\test\dir1
Path dir1 = Paths.get("C:\\test", "dir1");

// 绝对路径为 C:\test\dir1\file1.txt
Path file1 = Paths.get("C:\\test", "dir1\\file1.txt");

 

特殊路径符:

  • 单个点号,. 表示当前目录

    // 绝对路径为 C:\test\dir1\file1.txt
    Path file1 = Paths.get("C:\test\.\dir1\file1.txt");
    
  • 两个点号,.. 表示上级目录

    // 绝对路径为 C:\test\file1.txt
    Path file1 = Paths.get("C:\test\dir1\..\file1.txt");
    

 

Path.normalize()

Path.normalize() 方法可以使Path实例标准化。即,移除path字符串中所有单点号(.)和双点号(..),解析path字符串所指向的路径。

例:

String strPath = "C:\\test\\dir1\\..\\file1.txt";

Path path1 = Paths.get(strPath);
String str1 = path1.toString();
// str1 为 C:\test\dir1\..\file1.txt

Path path2 = path1.normalize();
String str2 = path2.toString();
// str2 为 C:\test\file1.txt
分享到:
评论

相关推荐

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    Java NIO英文高清原版

    Java NIO英文高清原版

    java NIO 中文版

    讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    java nio中文版

    java NIO是 java New IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下: – 为所有的原始类型提供 (Buffer) 缓存支持。 – 字符集编码解码解决方案。 – Channel :一个新的原始 I/O 抽象。 – 支持...

    Java Nio selector例程

    java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...

    基于Java NIO实现五子棋游戏.zip

    基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现...

    java NIO技巧及原理

    java NIO技巧及原理解析,java IO原理,NIO框架分析,性能比较

    【Java NIO 简例】分散(Scatter) – 聚集(Gather)

    原文:《Java NIO Scatter / Gather》 Scatter(分散):将一个 Channel 中的数据读取到多个 Buffer 中。 Gather(聚集):将多个 Buffer 中的数据写入一个 Channel 中。 Scatter/Gather 机制可以方便处理多个分开的...

    java NIO.zip

    java NIO.zip

    java基于NIO实现Reactor模型源码.zip

    java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...

    java nio 读文件

    java nio 读文件,java nio 读文件

    JAVA NIO 学习资料

    JAVA NIO学习资料JAVA NIO学习资料

    Java NIO实战开发多人聊天室

    01-Java NIO-课程简介.mp4 05-Java NIO-Channel-FileChannel详解(一).mp4 06-Java NIO-Channel-FileChannel详解(二).mp4 08-Java NIO-Channel-ServerSocketChannel.mp4 09-Java NIO-Channel-SocketChannel.mp4 ...

    java nio入门学习,两个pdf

    java nio入门学习,两个pdfjava nio入门学习,两个pdf

    Java NIO (中文版)

    Java NIO (中文版) PDF文档,带目录,非图片扫描 !!!

Global site tag (gtag.js) - Google Analytics