`
cucaracha
  • 浏览: 137859 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:85908
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:35711
社区版块
存档分类
最新评论

[NIO.2] 第五篇 Path 对象的转换

阅读更多
本文中,你将可以看到如何将 Path 对象转换为其它对象。本文所有例子都是基于下面的 Path 对象:

Path path = Paths.get("/rafaelnadal/tournaments/2009", "BNP.txt");


将 Path 转换为 String

可以直接使用 Path.toString() 方法进行转换:
//output: \rafaelnadal\tournaments\2009\BNP.txt 
String path_to_string = path.toString(); 
System.out.println("Path to String: " + path_to_string); 


将 Path 转换为 URI

可以调用 Path.toURI() 方法转换为浏览器可识别的 URI 格式,输出的字符串可以直接输入到浏览器的地址栏中。
//output: file:///C:/rafaelnadal/tournaments/2009/BNP.txt 
URI path_to_uri = path.toUri(); 
System.out.println("Path to URI: " + path_to_uri); 


将相对路径转换为绝对路径

从相对路径得到绝对路径是一个经常遇到的问题。NIO.2 中可以调用 toAbsolutePath() 来达到这个目的(如果本身就是绝对路径,那么将会返回原有的 path 对象)

//output: C:\rafaelnadal\tournaments\2009\BNP.txt 
Path path_to_absolute_path = path.toAbsolutePath(); 
System.out.println("Path to absolute path: " + path_to_absolute_path.toString()); 


将 Path 转换为真实路径

调用 toRealPath() 方法可以返回一个已存在的文件的真实路径。如果使用不带参数的 toRealPath() 方法并且文件系统支持符号链接的话,这个方法会解析路径中的所有符号连接。如果你想忽略符号链接所链接的文件,而只需要处理符号链接本身的文件,可以传入 LinkOption.NOFOLLOW_LINKS 这个枚举常量作为参数。如果 Path 是相对路径,那么将返回绝对路径,如果 Path 对象中包含有冗余信息,那么冗余信息将会被清除,如果文件不存在或不可访问,那么将会抛出 IOException。
下面的代码将返回文件的真实路径,并且忽略符号链接:
import java.io.IOException; 
… 
//output: C:\rafaelnadal\tournaments\2009\BNP.txt 
try {            
    Path real_path = path.toRealPath(LinkOption.NOFOLLOW_LINKS); 
    System.out.println("Path to real path: " + real_path); 
} catch (NoSuchFileException e) { 
    System.err.println(e); 
} catch (IOException e) { 
    System.err.println(e); 
} 


将 Path 转换为 File


可以调用 Path 对象的 toFile() 方法转换为 File 对象。File 对象也提供了 toPath() 方法来进行相互转换。

//output: BNP.txt 
File path_to_file = path.toFile(); 
 
//output: \rafaelnadal\tournaments\2009\BNP.txt 
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()); 


文章来源:http://www.aptusource.org/2014/03/nio-2-convert-path-object/
分享到:
评论

相关推荐

    Java IO, NIO and NIO.2(Apress,2015)

    Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...

    java NIO.zip

    java NIO.zip

    java.io:clojure.java.io 的 JK7 java.nio.file.Path 兼容性

    java.io clojure.java.io 的 JK7 java.nio.file.Path 兼容性依赖信息该库托管在 Releases 上。 依赖: [me.moocar/java.io " 0.1.0 " ]用法是 JDK7 中引入的文件路径的抽象。 这个库提供了和 Paths 之间的兼容性。 ...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...

    Java IO, NIO and NIO.2

    这是一本介绍java io以及nio相关知识的书,书中对知识的讲解通俗易懂,是学习java nio以及复习java io相关知识的必备书籍。注意:本书为英文版!!!

    java nio.pdf

    java nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava ...

    Java NIO.pdf

    Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf

    蔚来-NIO.US-新车上市,蔚来可期.pdf

    蔚来-NIO.US-新车上市,蔚来可期.pdf

    Pro Java 7 NIO.2

    This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...

    Apress.Pro.Java.7.NIO.2.2011

    Apress.Pro.Java.7.NIO.2.2011

    Java NIO 中英文版 + Pro Java 7 NIO.2

    Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制

    ProJava7NIO.2PDFBooks.pdf 英文原版

    Pro Java 7 NIO.2 – PDF Books

    Pro Java 7 NIO.2.pdf

    Pro Java 7 NIO.2.pdf,2011 by Anghel Leonard

    Pro Java 7 NIO.2 原版pdf by Leonard

    This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...

    java nio.doc

    定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。  NIO API 的集中抽象为:  缓冲区,它们是数据容器;  字符集 及其相关解码器 和编码器,  它们在字节和 Unicode 字符之间进行转换;  各种类型的通道,...

    JavaNIO.pdf

    JavaNIO.pdf

    java org.apache.http.nio jar包

    找了好久,终于找到了,java刷新同步获取网络资源

    优雅的操作文件:java.nio.file 库介绍.pdf

    在早期的 Java 版本中,文件 IO 操作功能一直相对较弱,主要存在以下...Path 路径:Paths 模块和 Path 工具类介绍 Files 文件:File 和 FileSystems 工具类介绍 文件管理服务:WatchService 、PathMatcher 等等文件服务

    java_nio.doc

    用java.nio.*进行网络编程

Global site tag (gtag.js) - Google Analytics