Pro Java7 Nio.2 学习(第一章)

package chapter1;

import java.io.File;
import java.io.IOException;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * 定义Path 对象
 * 
 * @author longlong
 * 
 * @mail [email protected]
 * 
 */
public class PathTest {

    public static void main(String[] args) {
        /**
         * 1.定义一个绝对路径
         */
        Path path = Paths.get("c:/my/test1.log");
        System.out.println(path);
        
        //get方法可以将参数
        path = Paths.get("c:", "my" , "test1.log") ;
        System.out.println(path);
        
        /**
         * 2.定义一个相对路径
         */
        path = Paths.get("/my" , "test1.log") ;
        System.out.println(path);
        
        /**
         * 3.相对于工作目录路径
         */
        path = Paths.get("my" , "test1.log") ;
        System.out.println(path);
        
        /**
         * 4.路径的简写 : .表示当前目录   ..表示上级目录
         */
        path = Paths.get("c:/my/./test1.log").normalize() ;
        System.out.println(path);

        path = Paths.get("c:/my/./../test1.log").normalize() ;
        System.out.println(path);
        
        /**
         * 5. 定义 Path 同样可以使用 FileSystems.getDefault().getPath(...)
         */
        
        /**
         * 6.取得Home路径 
         */
        path = Paths.get(System.getProperty("user.home"), "downloads", "game.exe");
        System.out.println(path);
        
        /**
         * 7.得到Path对象之后,获取其更多信息内容
         */
        path = Paths.get("c:/my/test1.log");
        
        //a.获取其文件名称
        System.out.println(path.getFileName());
        
        //b.获取文件的根目录
        System.out.println(path.getRoot());
        
        //c.获取文件的上级目录路径
        System.out.println(path.getParent());
        
        //d.获取文件其路径上所有名称
        for (int i = 0; i < path.getNameCount() ; i++) {
            System.out.println("Name element " + i + " is: " + path.getName(i)) ;
        }
        
        //e.获得子路径
        System.out.println("Subpath (0,1): " + path.subpath(0, 1));
        
        /**
         * 8.获得文件路径的URI 用于浏览器可以访问
         */
        System.out.println(path.toUri());
        
        /**
         * 9.将相对路径转换为绝对路径
         */
        path = Paths.get("c:" , "my" ,"test" , "1.log") ;
        System.out.println(path.toAbsolutePath());
        
        try {
            path.toRealPath(LinkOption.NOFOLLOW_LINKS);
            System.out.println(path);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        /**
         * 10.将path转换为File
         */
        File file = path.toFile() ;
        System.out.println(file);
        
        /**
         * 11.比较两个路径
         */
        Path path01 = Paths.get("BNP.txt");
        Path path02 = Paths.get("AEGON.txt");
        
        Path path02_to_path01 = path02.relativize(path01);
        System.out.println(path02_to_path01);
                
    }

}
时间: 2024-08-30 12:02:26

Pro Java7 Nio.2 学习(第一章)的相关文章

web学习第一章

web学习第一章 我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻的是WEB应用程序的工作原理,因为老师为了解释这个画来很多遍图,我当时想的是:为什么还有人没懂?我都听困了. 直到老师说要抽人起来画图,我一下就回过神来了,于是乎老师抽人开始了,我看见同学一个个的被抽上去画,我发现我有些东西怎么没看见过,在他们画的同时我就在下面学,错一个,我就记一个. 今天老师还是继续

C++ Primer快速学习 第一章 入门

很多人说C++Primer不适合于入门,本系列入门文章向大家证明了:这是一个谎言. 第一章 入门 本章介绍 C++ 的大部分基本要素:内置类型.库类型.类类型.变量.表 达式.语句和函数. 1.1. 编写简单的 C++ 程序 每个 C++ 程序都包含一个或多个 函数 ,而且必须有一个命名为 main.函数 由执行函数功能的语句序列组成.操作系统通过调用 main 函数来执行程序, main 函数则执行组成自己的语句并返回一个值给操作系统. 下面是一个简单的 main 函数,它不执行任何功能,只是

Java基础知识二次学习-- 第一章 java基础

基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介 时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令 时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 javac先将

学习第一章 Android系统的编译和移植实例后的心得体会

说起来,去年在岳老师的带领下就接触了嵌入式系统的编译和移植.而现在我们又开始接触Android系统的编译和移植.第一章主要介绍安卓系统的编译和移植技术.其实安卓和嵌入式非常相似. 安卓 移植涉及的主要过程大致分为六步:1.下载安卓linux内核. 2.安装交叉工具链.3.移植安卓linux内核支持EZ6410平台.4.安装安卓SDK.4.获得安卓根文件系统.5.设置系统环境,完成安卓正常启动.虽然步骤不多,但是涉及了很多东西.在开始内核移植之前,先完成工具链的搭建.在移植过程中会发现硬件差异.差

Ruby学习-第一章

第一章 字符串,数字,类和对象 为了证明Ruby真的好用,hello world也能写的如此简洁: puts 'hello world' 1.输入/输出 print('Enter your name') name=gets() puts("Hello #{name}") 注:Ruby是区分大小写的 2.String类 puts("Hello #{name}")中的变量 name是内嵌在整个String里的,通过 #{ } 包裹进行内嵌求值,并用双引号"&q

Netty In Action中文版 学习第一章的重点知识

第一章 大多数都是一些名词,SSL/TLS和Starttls支持,回调,聚合,分散,这些我也不是很明白,也百度了一下这些基础概念,大家也可以去看看实际的内容以及相关的代码,由于本人也是新手对这些词也理解不深刻不在此细说. 下面是一个jar文件搜索的比较好的网址拿出来分享给大家 http://www.findjar.com/index.x?query=xlstojson jar包的搜索地 下面就是工具,作为新人大多数都说用Eclipse就够了,我由于想看开源的源码所以选择了MyEclipse 10

python 学习第一章(python基础编程第二版)

第一章:基础知识 1.双斜线:实现整除的操作符 >>>1//2 0 就算是浮点数,双斜线也会执行整除 >>>1.0//2.0 0.0 2.幂(乘方)运算符:双星 >>>2**3 8 tip:可以用函数pow代替运算符,pow(2,3) 3.十六进制和八进制 十六进制:前面加0x,第一个是数字0 >>>0xAF 175 八进制:在3.0以上版本的python中加0o,首数字是0,第二个是字母o >>>0o10 8 4.

LinQ in Action 学习第一章 例子。

最近用Entity Framework 做了个mvc 的小例子,发现代码中用LinQ 语法还是很多的,决定好好研究一下LinQ,补一下.net 的技术,是不是大家都对这些技术很熟了,,因为项目简单,都没怎么用. 参考书  Linq IN Action  中英文版对照, 也不知道这本是不是最好的介绍LinQ的书,看网上的评价还是可以的. 可以去皮皮书屋下载. 如果有更好的书推荐,欢迎大家留言给我 第一章: 就是对LinQ的简介,还是从写代码开始吧. 一: Hello Linq world: 这个例

Biztalk学习第一章(整体架构)

Biztalk运行时的结构 BizTalk Server 本质上就是消息处理引擎.个人认为在了解Biztalk之前必须要知道的一部分便是BizTalk Server 的整体架构,只有对架构烂熟于心这样才能为往下深入学习做好基础. 首先来看一下Biztalk的整体架构图 如上图所示,完整的绘制了Biztalk在接受端口接收到文件后整个处理文件的过程. 接下来分开叙述:(参照微软官方文档) 接收端口和接收位置 "接收端口"是一个或多个接收位置的集合,是BizTalk Server 的特定入