思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

实例分析Java SE 6.0新增功能

来源:网络    更新时间:2014-11-27


下载本文源代码

  Java6.0标准版(Mustang)包含了大量使Java开发更为容易的特性。在本文中,我们将讨论通过部分新特性来帮助你实现如下功能:

  ·设置文件和目录许可权

  ·获取分区上自由空间和可用空间数

  ·把Component对象添加到JTabbedPane的选项卡上

  ·在你的Java基础类/Swing(JFC/Swing)应用程序中使用流行的SwingWorker类

  因此,如果JSR270专家组同意采纳这些特征,那么在Mustang的下一个发行版本中你就会看到这些特征。

  注意:为了运行本文中的源码,你必须下载并安装Mustang的最新版本。

  一、设置文件和目录权限

  现在,从Mustangbuild31开始,你可以在本地文件系统中设置一个文件的可读、可写和可执行标志。这项功能已经被添加到java.io.File类中,并通过使用下列方法来实现:

publicbooleansetReadable(booleanreadable,booleanownerOnly)
publicbooleansetReadable(booleanreadable)
publicbooleansetWritable(booleanwritable,booleanownerOnly)
publicbooleansetWritable(booleanwritable)
publicbooleansetExecutable(booleanexecutable,booleanownerOnly)
publicbooleansetExecutable(booleanexecutable)
  如果你曾某种Unix系统上工作过,那么你应该对这些方法非常熟悉-其实它们实现了chmod命令的一些功能。这些方法试图设置由现在的File对象所描述的文件或目录的适当权限。如果把第二个可选参数设置为true,那么该权限将仅应用于当前所有者标志。否则,这些方法将应用到所有用户。注意,如果底层文件系统没法区分该所有者和其他所有者的权限(在一些版本的Windows中就是这样),那么这一权限将应用到每一个人,而不管传递的是什么值。

  如果你是一个使用NT文件系统的Windows用户,那么你应该读一下这个文档,它解释了如何使用各种不同的选项来控制不同用户的文件存取权限问题。

  如你所想,如果用户没有权限来改变这个抽象路径名的存取权限,那么第一个方法就会失败(也就是说,返回false);而且,这些方法也会抛出一个java.lang.SecurityException异常-如果存在一个Java安全管理器并且它的checkRead()/checkWrite()/checkExecute()方法不允许存取该文件的话。

  下表1显示了在多种文件系统上运行这些命令的典型结果,以及这些命令在不同目标操作系统上的可用性。

  表1.在常用OS文件系统上的java.io.File权限操作

命令在WindowsXP系统上的返回值在Linux系统上的返回值在solaris系统上的返回值setReadable(true)trueTrue(等价于chmod r)True(等价于chmod r)setReadable(false)False(在Windows中文件可读性不能被设置为False)True(等价于chmod-r)True(等价于chmod-r)setWritable(true)True(切换Windows的只读文件属性)True(等价于chmod w)True(等价于chmod w)setWritable(false)true(切换Windows的只读文件属性)True(等价于chmod-w)True(等价于chmod-w)setExecutable(true)trueTrue(等价于chmod x)True(等价于chmod x)setExecutable(false)false(在Windows中文件可执行属性不能被设置为False)True(等价于chmod-x)True(等价于chmod-x)
  决定是否文件是可读,可写或可执行的方法与这个平台的前一个版本-Java2平台,标准版(J2SE)5.0-保持一致。

publicbooleancanRead();
publicbooleancanWrite();
publicbooleancanExecute();
  二、取得硬盘分配空间

  除了允许你设置文件和目录权限外,Mustang还为你提供了三个新方法来决定当前磁盘分区中的可用空间数,这是由一个java.io.File对象来描述的:

publiclonggetTotalSpace();
publiclonggetFreeSpace();

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018