技术开发 频道

年度回顾:JavaSE 7值得期待之处

  更多NIO APIs

  JSR 203:NIO 2扩展和实现了在Java 1.4中加入的最初NIO功能。在NIO 2中最明显的新增功能就是文件访问API的全面改进。多数开发者都用过java.io.File,对其存在的众多缺陷自然心中有数:

  ·不支持符号链接(symbolic links )

  ·不支持简单移动和拷贝操作

  ·目录漫游和过滤API非常复杂

  ·对文件属性和访问权限的支持非常有限

  ·没有查看目录或文件的API

  ·有限的错误处理功能

  幸运的是,JSR 203不仅改进了以上所有缺点,而且实现了更多功能。这个API从一开始就设计为具备可扩展性,除了支持默认文件系统外,还支持嵌入式文件系统,还具有诸多灵活选项设置,可以实现诸如打开和拷贝文件、系统属性定义等操作。

  Listing 2演示了JSR 203是如何被用来实现一些通用操作。Path是这个API的核心;你可以把它看作新建文件。

  Listing 2

import java.nio.file.*;

// FileSystems -> FileSystem -> Path
FileSystem fileSystem = FileSystems.getDefault();
Path homeDir
= fileSystem.getPath("/Users/lskywalker");

// Shortcut with Paths helper class
Path homeDir = Paths.get("/Users/lskywalker");
Path secrets
= homeDir.resolve("secrets.txt");
    
// Steal secrets
secrets.moveTo(Paths.get("/Users/dvader/secrets.txt"));

  除了文件系统API外,JSR 203还实现了许多在第一版NIO中提出的API,提供了对组播的更多支持,提供了在Socket和文件上进行异步I/O操作的API。

0
相关文章