美文网首页
Java中的文件处理

Java中的文件处理

作者: haha_writing | 来源:发表于2020-09-22 14:16 被阅读0次

JavaSE 7中增加了Path接口和Files类,他们使用起来比JDK1.0中的File类方便很多。

Interface Path

Path是目录名的序列,可以包含或者不包含文件名。根据是否以根目录开头,可以分为绝对路径和相对路径。Path用于在文件系统中定位文件对象。

类Paths

Paths.get(String first, String ...more):这个静态方法,接收一个或者多个字符串,并将这些字符串通过操作系统默认的路径分隔符连接起来(Unix系统为"/",Windows为“\”)。返回结果为Path对象。如果结果不是一个合法的路径,抛出InvalidPathException。

Path absolute = Paths.get("/usr", "local");  
System.out.println(absolute);   //   output: /usr/local

Paths.get(URI uri):这个静态方法将给定的URI转化为Path对象。

Path方法

boolean isAbsolute():是否绝对路径。
Path getRoot():返回Path对象的root,如果没有,返回null。
Path getFilename() :返回该路径或者文件的名称,filename是路径中距离根目录最远的元素。
Path getParent():返回父目录。
int getnameCount():返回路径中名称的个数。
int getName(int index): 离根目录最近的名称,index为0,最远的为名称总的个数-1。
Path subpath(int beginIndex, int endIndex):从beginIndex开始,包含beginIndex的名称,以endIndex结束,但不含endIndex位置的名称。
boolean startsWith(Path other):Test if this Path start with the given Path.
boolean startsWith(String other):
boolean endWith(Path other): Test if this Path ends with the given Path.
boolean endWith(String other): 
Path resolve(Path other): p.resolve(q),如果q是一个绝对路径,返回other。否则,结果是p+q。
Path resolve(String other): 
Path resolveSibling(Path other): 相对于当前路径的父目录,生成一个目录。
Path resolveSibling(String other):
Path relativize(Path other):创建相对路径
Path toFile():返回一个File对象。

实例

     Path curPath = Paths.get("/usr","local","etc"); 
     System.out.println(curPath);  //output:  /usr/local/etc
     System.out.println(curPath.toString());  //output:  /usr/local/etc
     System.out.println(curPath.isAbsolute());  //output:true
     System.out.println(curPath.getRoot());     //output: /
     System.out.println(curPath.getFileName()); //output: etc
     System.out.println(curPath.getNameCount());//output: 3
     System.out.println(curPath.getParent());    //output: /usr/local
     System.out.println(curPath.getName(0));    //output: usr
     System.out.println(curPath.getName(1));    //output: local 
     System.out.println(curPath.getName(2));    //output: etc
     System.out.println(curPath.subpath(1, 2));    //output: local
     Path siblingPaths = curPath.resolveSibling("temp");
     System.out.println(siblingPaths); //output: /usr/local/temp
     System.out.println(curPath.relativize(siblingPaths));//output: ../temp

Files

Files类提供了常见的文件操作,读写文件,创建、移动,复制、删除文件等。

创建路径和文件

Files.createDirectory(path) : 如果中间目录不存在,会报错。
Files.createDirectories(path):如果中间目录不存在,会自动创建。
Files.createFile(path): 如果文件存在,抛出异常。
Files.createTempFile(dir, prefiex, suffix);
Files.createTempDirectory(prefix);

读写文件

static bye[] readAllBytes(Path path):
static List<String> readAllLines(Path path, Charset charset)
static Path write(Path path, byte[] butes, OpenOption... options)

获取文件信息

• static boolean exists(Pathpath)
• static boolean isHidden(Pathpath)
• static boolean isReadable(Pathpath)
• static boolean isWritable(Pathpath)
• static boolean isExecutable(Pathpath)
• static boolean isRegularFile(Pathpath)
• static boolean isDirectory(Pathpath)
• static boolean isSymbolicLink(Pathpath)
• static long size(Path path)
• static FileTime getLastModifiedTime(Path path, LinkOption... options)

目录遍历

静态方法Files.list()方法可读取目录下所有文件,返回一个Stream<Path>。该方法不会进入子目录。如果要进入子目录,使用Files.walk()方法。

try(Stream<Path> entries = Files.list(directory)){
  ...  
}

类File

    String[] list(): 返回目录下文件名,不包含完全路径。
    File[] listFiles():返回目录下文件,包含完全路径。

相关文章

  • Java中的文件处理

    JavaSE 7中增加了Path接口和Files类,他们使用起来比JDK1.0中的File类方便很多。 Inter...

  • 第十五章文件与流

    JAVA程序如何访问文件属性 java.io.File类 File类访问文件属性 java中的文件及目录处理类 1...

  • java 中处理csv文件

    处理NSE数据时,会提取和重组一些数据,现在一共有两个方法,一个是 java 自带的方法,一个就是用一个第三方的库...

  • 文件与流

    JAVA中的文件及目录处理类 在Java中提供了操作文件及目录(即我们所说的文件夹)类File。有以下几点注意事项...

  • Dart入门07 -- 异步

    在Dart中处理耗时操作(网络请求,文件读取),采用的的处理方式为单线程 + 事件循环,而在OC,Java中采用的...

  • Flutter入门06----Dart异步操作和网络请求

    在Dart中处理耗时操作(网络请求,文件读取),采用的的处理方式为单线程 + 事件循环,而在OC,Java中采用的...

  • JVM和DVM的类加载

    .java文件会java编译器生成Class文件。这个Class文件会被JVM虚拟机来处理。java虚拟机只与特定...

  • APK打包流程及APK文件结构简述

    APK打包流程 1.打包资源文件,生成R.java文件2.处理AIDL文件,生成对应的.java文件(当然,有很多...

  • Javassist 指南1

    1、读写字节码 Javassist 是一个能处理 Java字节码 的类库,Java字节码存储在class文件中,每...

  • Exception

    Java 中 9 个处理 Exception 的最佳实践 Java 中的异常和处理详解 如何优雅的设计 Java ...

网友评论

      本文标题:Java中的文件处理

      本文链接:https://www.haomeiwen.com/subject/vadbektx.html