首页 > 编程语言 >无涯教程-Java NIO - Path(路径)

无涯教程-Java NIO - Path(路径)

时间:2023-12-29 12:37:54浏览次数:41  
标签:java nio 无涯 System Java path println Path NIO

顾名思义,Path是实体(如文件或目录)在文件系统中的特定位置,以便人们可以在该特定位置搜索和访问它。

通常,一个实体的路径可以是两种,一种是绝对路径,另一种是相对路径,为了获得Path的,无涯教程可以使用java.nio.file.Paths类 get()的静态方法。

如上所述,绝对路径是通过传递根元素和定位文件所需的完整目录列表来检索的,而相对路径可以通过将基本路径和相对路径组合来检索,两个路径的检索将在以下示例中进行说明

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path relative = Paths.get("file2.txt");
      System.out.println("Relative path: " + relative);
      Path absolute = relative.toAbsolutePath();
      System.out.println("Absolute path: " + absolute);
   }
}

到目前为止知道什么是Path接口,为什么需要它以及如何访问它。现在将知道Path接口提供了哪些重要方法。

重要方法

  • getFileName()                      - 返回创建此对象的文件名。

  • getName()                             - 返回此Path的名称。

  • getNameCount()                  - 返回Path中名称的数量。

  • subpath()                               - 返回相对路径,该路径是名称的子序列。

  • getParent()                            - 返回父Path,如果没有,则返回null。

  • getRoot()                               - 返回根(Root)路径,如果没有,则返回null。

  • toAbsolutePath()                 - 返回绝对路径。

  • toRealPath()                         - 返回文件真实路径。

  • toFile()                                   - 返回File对象。

  • normalize()                           - 返回路径,其中消除了多余的名称。

  • compareTo(Path other)      - 按字典顺序比较两个文件路径。

  • endsWith(Path other)         - 判断该路径是否以给定路径结尾。

  • endsWith(String other)      - 判断此路径是否以指定的字符串结尾,

以下示例说明了上面提到的Path接口的不同方法-

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path path = Paths.get("D:/workspace/ContentW/Saurav_CV.docx");
      FileSystem fs =  path.getFileSystem();
      System.out.println(fs.toString());
      System.out.println(path.isAbsolute());
      System.out.println(path.getFileName());
      System.out.println(path.toAbsolutePath().toString());
      System.out.println(path.getRoot());
      System.out.println(path.getParent());
      System.out.println(path.getNameCount());
      System.out.println(path.getName(0));
      System.out.println(path.subpath(0, 2));
      System.out.println(path.toString());
      System.out.println(path.getNameCount());
      Path realPath = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
      System.out.println(realPath.toString());
      String originalPath = "d:\\data\\projects\\a-project\\..\\another-project";
      Path path1 = Paths.get(originalPath);
      Path path2 = path1.normalize();
      System.out.println("path2=" + path2);
   }
}

参考链接

https://www.learnfk.com/java-nio/java-nio-path.html

标签:java,nio,无涯,System,Java,path,println,Path,NIO
From: https://blog.51cto.com/u_14033984/9025311

相关文章

  • Java第二十课_File
    1.FileFile常用函数publicstaticvoidmain(String[]args)throwsIOException{//相对路径:IO流默认目录:当前项目工程开始自己算//绝对路径:带盘符的路径://网络路径:https://img2.baidu.com/it/u=3164322677,862193441&fm=2......
  • linux下java调用netcore程序
    代码备份仅供参考自述文件#JavaCallCSharpJavacallC#libbuildwith.NETCORE2.0viaC++aswraperThecodeisbasedon[examplefromcoreCLR](https://github.com/dotnet/coreclr/tree/master/src/coreclr/hosts/unixcoreruncommon)JavausingJNItocallC++......
  • Linux下netcore调用java代码
    代码备份,仅供参考自述文件#CSharpCallJavaC#invokeJavaviaC++asawraper.C#invokeC++viaP/invoke.C++startsaJVMtoruntheJavacode.C#codeshouldbecompiledin.NETcore2.0YoushouldedittheMakefiletosetthePathofJavaSDKexpor......
  • 关于IDEA报 java: 无法访问java.lang.Record 找不到java.lang.Record的类文件
    IDEA一直报java:无法访问java.lang.Record  找不到java.lang.Record的类文件,但是我已经把所有的java配置改成了17。最后发现是pom文件中org.apache.maven.plugins配置没有改。属性修改如下:<configuration><compilerVersion>1.8</compilerVersion>-......
  • 【随手记录】Apache-JMeter部署银河麒麟报错: jmeter module java.desktop does not "o
    操作系统:Linux0012.novalocal4.19.90-17.ky10.aarch64#1SMPSunJun2814:27:40CST2020aarch64aarch64aarch64GNU/LinuxJDK版本:java17.0.82023-07-18LTSJava(TM)SERuntimeEnvironment(build17.0.8+9-LTS-211)JavaHotSpot(TM)64-BitServerVM(build......
  • 「Java开发指南」如何用MyEclipse搭建JSF/Primefaces和Spring(二)
    本教程将引导大家完成为JavaServerFaces(JSF)生成软件组件的过程,在本文中您将学习到如何:从数据库表到现有项目搭建配置支持JSF2.0的服务器部署搭建的应用程序在上文中,我们介绍了如何创建一个Web项目、从数据库表搭建及配置服务器等,本文将继续介绍如何部署应用程序!更多MyE......
  • The JAVA_HOME environment variable is not defined correctly,解决
    k8s集成jenkins,在进行子工程mvncleaninstall过程中报截图中错误,经过排除是之前在系统管理->系统配置中,添加的JAVA_HOME环境变量不对,可能目前我使用的jenkins是通过k8sPod生成的,并不是直接在主机上安装的,所以此处填的JAVA_HOMEjenkins识别不到,所以报错.取消后不再报错.......
  • Java中的非对称加密算法原理与实现
    引言在当今的信息时代,数据安全已经成为了一个至关重要的问题。加密技术作为保障信息安全的重要手段,受到了广泛的应用和关注。其中,非对称加密算法因其高效、安全的特点,在众多加密方法中独树一帜。本篇文章将详细介绍Java中的非对称加密算法原理及其实现方式。一、非对称加密算法概述......
  • 无涯教程-Java NIO - Pipe(管道)
    在Java中,NIOPipe(管道)是用于在两个线程之间写入和读取数据的组件。Pipe(管道) 主要由两个通道组成,负责数据传输,在两个组成通道中,一个称为接收器通道,主要用于写入数据,另一个称为源通道,其主要目的是从接收器通道读取数据。管道类函数open()   -此方法用于获取Pipe的......
  • idea 项目加载 全线飘红, @Service飘红,连 import java.util.List; 也飘红,终极解决方案
    常规方案:1、maven,检查maven配置,重新加载maven依赖,重新加载项目,把maven的本地私库删了重新下载2、检查idea配置,jdk配置,加载的项目的配置,idea清理缓存重启,等等3、是否更新了其他idea配置,比如git忽略文件里是否添加了*.class 4、重新安装idea5、及其他以上方案自行百度,都可以......