JDK1.6新特性,基础类库篇,IO支持

时间:2022-02-23 10:58:32

1. JDK1.6中提供了java.io.Console类

JDK1.6中提供了java.io.Console 类专用来访问基于字符的控制台设备。你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳。但我们不总是能得到可用的Console,一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用。如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例。

2. File类增加了如下方法

如下方法获取磁盘使用信息:

  • getTotalSpace() - 返回此抽象路径名指定的分区大小。以字节为单位。
  • getFreeSpace() - 返回此抽象路径名指定的分区中未分配的字节数。
  • getUsableSpace() - 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。若有可能,此方法将检查写权限和其他操作系统限制,因此与 getFreeSpace() 相比,此方法能更准确地估计可实际写入的新数据数。

如下方法获取文件权限:

  • setWritable(boolean writable, boolean ownerOnly) 和 setWritable(boolean writable) - 设置此抽象路径名的所有者或所有用户的写权限。
  • setReadable(boolean readable, boolean ownerOnly) 和 setReadable(boolean readable) - 设置此抽象路径名的所有者或所有用户的读权限。
  • setExecutable(boolean executable, boolean ownerOnly) 和 setExecutable(boolean executable) - 设置此抽象路径名的所有者或所有用户的执行权限。
  • canExecute() - 测试应用程序是否可以执行此抽象路径名表示的文件。

3. IOException类增加构造函数

IOException支持异常链通过新的构造函数:IOException(String, Throwable) 和IOException(Throwable)。

4. File.isFile()方法的行为发生变化

Windows环境下对保留设备名如: CON, NUL, AUX, LPT, 等等,永远返回false。

5. java.nio模块,增加java.nio.channels.SelectorProvider实现类等,略