创建Path实例 
    Path实例包含了指定文件或目录位置的信息,在实例化Path类时,需要指定一个或多个目录或文件名。路径的根目录不是必须的;路径信息可能仅仅是一个目录或文件的名称。最简单的创建Path实例的方式就是使用Paths(注意这里有一个s)类的get方法:

Path p1 = Paths.get("/tmp/foo"); 
Path p2 = Paths.get(args[0]); 
Path p3 = Paths.get("file:///Users/joe/FileTest.java");

Path类接受String或URI作为参数。

获取路径信息 
   File System一般是树形结构,因此我们可以把Path理解为按顺序存储的一系列的名称(目录名称和文件名称)。目录结构中最高一层的目录名就是序列中 index为0的那一个,目录结构中最低一层的目录名或者文件名就是序列中index为n-1的那一个(这里n是路径中层次的数目)。
    Path类提供方法来通过index获取序列中的一个元素或一个子序列。

import java.nio.file.Paths;
import java.nio.file.Path;
public class Test{public static void main(String args[]){Path path = Paths.get("C:\\home\\joe\\foo");    // Microsoft Windows syntax    //Path path = Paths.get("/home/joe/foo");    // Solaris syntax   System.out.println("path.toString()--"+path.toString());     System.out.println("path.getName(1)--"+path.getName(1));       System.out.println(path.getName(0));     System.out.println(path.getNameCount());     System.out.println(path.subpath(0,2));     System.out.println(path.getParent());     System.out.println(path.getRoot());     }
}

运行:
C:\ex>java Test
path.toString()--C:\home\joe\foo
path.getName(1)--joe
getName(0): home
getNameCount: 3
home\joe
getParent: C:\home\joe
getRoot: C:\

//java7新特性IO操作Path 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包中的文件 * 操作的重要切入点,作为基础有必要了解下 * @author zKF57533 */
public class TestPath {  public static void main(String[] args) {  //获得path方法一,c:/ex/access.log   Path path = FileSystems.getDefault().getPath("c:/ex", "access.log");  System.out.println(path.getNameCount());  //获得path方法二,用File的toPath()方法获得Path对象   File file = new File("e:/ex/access.log");  Path pathOther = file.toPath();  //0,说明这两个path是相等的   System.out.println(path.compareTo(pathOther));  //获得path方法三   Path path3 = Paths.get("c:/ex", "access.log");  System.out.println(path3.toString());  //join two paths   Path path4 = Paths.get("c:/ex");  System.out.println("path4: " + path4.resolve("access.log"));  System.out.println("--------------分割线---------------");  try {  if(Files.isReadable(path)){  //注意此处的newBufferedRead的charset参数,如果和所要读取的文件的编码不一致,则会抛出异常   //java的新特性,不用自己关闭流   BufferedReader br = Files.newBufferedReader(path, Charset.defaultCharset());//new BufferedReader(new FileReader(new File("e:/logs/access.log")));//   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");  }  }  }

运行:
C:\ex>java TestPath
2
-2
c:\ex\access.log
path4: c:\ex\access.log
--------------分割线---------------
aa
bb
cc

java.nio.file中的Paths类相关推荐

  1. Java文件– java.nio.file.Files类

    Java Files class was introduced in Java 1.7 and is a part of java.nio.file package. Java Files类是Java ...

  2. 了解java.nio.file.Path – 1

    介绍 Java的最后几个发行版本,即Java 7,Java 8和即将到来的Java 9,具有许多功能,这些功能使Java开发人员的生活更加轻松. (我知道Java 9会使它变得更困难,但是只有在您采用 ...

  3. 了解java.nio.file.Path – 2

    在本文的第1部分中,我们研究了java.nio.file.Path类中的大多数API. 在本文中,我们将介绍其余的API. 使用register() 该API允许我们注册java.nio.file.W ...

  4. 【错误记录】Flutter 混合开发报错 ( java.nio.file.FileSystemException: xxx/R.jar: 另一个程序正在使用此文件,进程无法访问。 )

    文章目录 一. 报错信息 二. 解决方案 一. 报错信息 Flutter 混合开发项目 : 在 Android 项目中 , 嵌入了 Flutter 页面 , 不小心运行了下 Flutter 项目 , ...

  5. java.nio.file.FileSystemException: xxx: Too many open files

    前言 linux Redhat 7.0 spring boot 2.0.x jdk1.8 长时间运行程序后,出现java.nio.file.FileSystemException: xxx: Too ...

  6. java.nio.file 找不到_java - 断言该错误:无法访问路径(找不到java.nio.file.Path) - 堆栈内存溢出...

    我想使用Robolectric进行单元测试,但是我正在尝试使用robolectric进行简单测试,因此一开始我很困惑. 我遵循了手册,对示例进行了同样的操作,甚至其他帖子也无济于事. 每次收到错误消息 ...

  7. 解决服务器报错java.nio.file.AccessDeniedException: /opt/jeecg-boot/upload

    文章长了点,着急解决问题的朋友可以直接看最后(三). 解决java.nio.file.AccessDeniedException: /opt/jeecg-boot/upload 一.查看报错日志 二. ...

  8. okHttp使用中报Could not find method java.nio.file.Files.newOutputStreamo警告问题

    最近在使用okHttp过程中总是报下面的警告 I/dalvikvm﹕ Could not find method com.squareup.okhttp.internal.huc.HttpURLCon ...

  9. java.nio.file.NoSuchFileException异常解决

    项目场景: 线上环境做做数据导入操作 问题描述 项目中有一个数据导入的功能,在调用接口时,返回接口异常. 异常信息如下: 2022-09-01 15:13:16.530 [XNIO-1 task-30 ...

  10. spring-boot 文件上传异常java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.51230

    问题描述 今天服务器上面的spring-boot应用突然出现文件上传异常, Failed to parse multipart servlet request; nested exception i ...

最新文章

  1. 基于OpenCV的实时面部识别
  2. 如何在XAF中显示自定义窗体和控件
  3. 这也不能一直在这儿瞎忙活
  4. Go 语言编程 — validator 数据校验工具
  5. centos -bash: vim: command not found
  6. easyui中onchange事件_React中类似Vue的“模板语法”
  7. 空格分隔输出(信息学奥赛一本通-T1026)
  8. 【BZOJ3555】企鹅QQ,第一次正确的使用哈希A题
  9. 2019安装软件安装管家_【软件安装管家】Br 2019软件安装包+安装教程
  10. 索引法则--字符串不加单引号会导致索引失效
  11. javascript面试题(一)
  12. 装修软件平台开发的优势
  13. 为什么要学好数据结构和算法
  14. 摄像头设计工程师面试技巧_系统设计面试准备的5个技巧
  15. 硬盘格式转换:MBR转换到GPT怎么转?
  16. EXCEL和公式里的 通配符
  17. c#运用——简体字转繁体字
  18. 苹果5完美越狱_iOS 9.3.5如何越狱 iOS 9.3.5免费越狱教程「步骤详解」
  19. wow Warlock shushia PVP DZ
  20. DZY Loves Math 系列详细题解

热门文章

  1. MySQL索引类型总结和使用技巧以及注意事项(转)
  2. artDialog双击会关闭对话框的修改
  3. ios GCD多线程
  4. C++中常引用的注意事项以及常引用和非常引用之间的转换
  5. android runtime异常,在做android下拉刷新时遇到异常java.lang.RuntimeException: Can't create handle...
  6. cors java 安全问题_使用CORS实现JavaWeb跨域请求问题的方法
  7. mysql hive 安装 配置_Hive与MySQL安装配置
  8. linux 主机支持远程唤醒_linux 通过wol远程开机【转】
  9. html编写个人博客_云开发平台开箱,3分钟零基础搭建个人Hexo博客
  10. java技术分享ppt_精美PPT制作培训 | 技术二部内部分享