Java7新特性--Path

官方API: http://docs.oracle.com/javase/7/docs/api/

官方文档:http://docs.oracle.com/javase/7/docs/index.html

在我学习使用lucene5.0的时候发现用到了Path,怎么点都点不进去,后来在网上查到是JDK7里边的东西,然后自己去获取Path对象却又不知道怎么获取,所以就去查找如何获取Path,就找到了这篇文章,亲自示范通过,然后发表一下希望能有所帮助。

例子如下:

package com.darren.test.jdk7;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * Path是java1.7的nio.file包中的文件 操作的重要切入点,作为基础有必要了解下
 */
public class PathTest {
    public static void main(String[] args) {
        // 获得path方法一,F:/test/jdk7/test.txt
        Path path = FileSystems.getDefault().getPath("F:/test/jdk7", "test.txt");
        // 打印文件的所在的节点层数
        System.out.println(path.getNameCount());

        // 获得path方法二,用File的toPath()方法获得Path对象
        File file = new File("F:/test/jdk7/test.txt");
        Path pathOther = file.toPath();
        // 0,说明这两个path是相等的
        System.out.println(path.compareTo(pathOther));

        // 获得path方法三
        Path path3 = Paths.get("F:/test/jdk7", "test.txt");
        System.out.println(path3.toString());

        // join two paths
        Path path4 = Paths.get("F:/test/jdk7");
        System.out.println("path4: " + path4.resolve("test.txt"));
        System.out.println("--------------分割线---------------");

        try {
            if (Files.isReadable(path)) {
                // 注意此处的newBufferedRead的charset参数,如果和所要读取的文件的编码不一致,则会抛出异常
                // java的新特性,不用自己关闭流
                BufferedReader br = Files.newBufferedReader(path, Charset.defaultCharset());
                // new BufferedReader(new FileReader(new File("F:/test/jdk7/test.txt")));
                String line = "";
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
            } else {
                System.err.println("cannot readable");
            }
        } catch (IOException e) {
            System.err.println("error charset");
        }
    }
}

运行结果:

3
0
F:\test\jdk7\test.txt
path4: F:\test\jdk7\test.txt
--------------分割线---------------
I am Darren

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值