您的位置:首页 > 编程语言 > Java开发

Java7新特性--Path

2015-04-16 14:05 162 查看
官方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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: