Java文件系统

广告位

Java7 引入了新的输入/输出2(NIO.2)API并提供了一个新的I/O API。 它向Java类库添加了…

Java7 引入了新的输入/输出2(NIO.2)API并提供了一个新的I/O API。

它向Java类库添加了三个包:java.nio.filejava.nio.file.attributejava.nio.file.spi

文件系统

FileSystem类的对象表示Java程序中的文件系统。FileSystem对象用于执行两个任务:

  • Java程序和文件系统之间的接口。
  • 一个工厂,它用于创建许多类型的文件系统相关对象和服务。

FileSystem对象与平台相关。

创建文件系统

要获取默认的FileSystem对象,需要使用FileSystems类的getDefault()静态方法,如下所示:

FileSystem fs  = FileSystems.getDefault();  

FileSystem由一个或多个FileStore组成。FileSystemgetFileStores()方法返回FileStore对象的迭代器(Iterator)。
FileSystemgetRootDirectories()方法返回Path对象的迭代器,它表示到所有顶级目录的路径。
FileSystemisReadOnly()方法判断是否获得文件存储的只读访问权限。例
以下代码显示如何使用FileSystem对象。

import java.nio.file.FileStore;  import java.nio.file.FileSystem;  import java.nio.file.FileSystems;  import java.nio.file.Path;  import java.io.IOException;    public class Main {    public static void main(String[] args) {      FileSystem fs = FileSystems.getDefault();        System.out.println("Read-only file system: " + fs.isReadOnly());      System.out.println("File name separator: " + fs.getSeparator());        for (FileStore store : fs.getFileStores()) {        printDetails(store);      }      for (Path root : fs.getRootDirectories()) {        System.out.println(root);      }    }      public static void printDetails(FileStore store) {      try {        String desc = store.toString();        String type = store.type();        long totalSpace = store.getTotalSpace();        long unallocatedSpace = store.getUnallocatedSpace();        long availableSpace = store.getUsableSpace();        System.out.println(desc + ", Total: " + totalSpace + ",  Unallocated: "            + unallocatedSpace + ",  Available: " + availableSpace);      } catch (IOException e) {        e.printStackTrace();      }    }  }  

上面的代码生成以下结果(不同的环境可能结果不太一样)。

Read-only file system: false  File name separator:   System (C:), Total: 53694595072,  Unallocated: 9739976704,  Available: 9739976704  Software (D:), Total: 149264121856,  Unallocated: 50061234176,  Available: 50061234176  Documents (E:), Total: 149264121856,  Unallocated: 75025080320,  Available: 75025080320  Others (F:), Total: 147882274816,  Unallocated: 57207463936,  Available: 57207463936  C:  D:  E:  F:  

  

洁姐我爱你

关于作者: 洁姐我爱你

为您推荐