Java SE 6.0新特性体验

Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

一、引言

Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文中让我们一起进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

在分析控制文件和目录存取许可的若干新的文件方法后,本文将向你展示新的桌面集成API。然后,本文还要分析Mustang的新的编程存取网络参数的能力。最后,本文将讨论表格组件的新的排序与过滤能力。

【注意】我使用Java SE 6的第二个测试版本(build 86)开发并测试了本文的Java示例应用程序,OS平台是Windows 98 SE。

二、存取权限控制方法

从某种角度看,File类的一个实例其实是一个标识文件系统中文件或目录对象的抽象路径名。文件系统可以限制在这个对象上实现的读、写以及执行等操作。

读、写和执行限制统称为“存取权限”。文件系统可以把多个存取权限集合关联到单个对象。例如,一个集合可以用于对象的所有者而另一个集合可以用于所有的其他用户。

前一个版本中提供的存取权限在直接用于存取对象时,有可能会导致File类的一些方法失败。由于这个原因,Mustang为File类引入了六种新的方法以便让你修改路径名的存取权限:

①“public boolean setExecutable(boolean executable, boolean ownerOnly)”:设置所有者或每个人对于指定抽象路径名的执行许可权。当executable为true时,允许执行操作;而传递给它的值为false时,则不允许执行。把true传递给参数ownerOnly仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的执行许可与每个人的执行许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种执行许可并且executable为false,则方法调用失败。

②“public boolean setExecutable(boolean executable)”:这个方法便于设置所有者对于给定抽象路径名的执行权限。

③public oolean setReadable( oolean readable, oolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的读取许可权。参数readable为true时允许读取操作;否则,不允许读取。参数ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的读取许可与每个人的读取许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种读取许可并且readable为false,则方法调用会失败。

④“public boolean setReadable(boolean readable)”:这个方法便于设置所有者对于给定抽象路径名的读取权限。

⑤“public boolean setWritable(boolean writable,boolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的写许可权。参数writable为true时允许写操作;否则,不允许写操作。参数ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的写许可与每个人的写许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

该方法在成功时这个方法返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限,则方法调用会失败。

⑥“public boolean setWritable(boolean writable)”:这个方法便于设置所有者对于给定抽象路径名的写权限。

【注意】如果存在一个安全管理器并且它的“public void checkWrite(String file)”方法不允许对文件进行写操作的话,则上面列出的每一个方法都会抛出一个SecurityException异常。

File类还提供了如下对应的方法以帮助你获得一个对象当前设置的读、写和执行权限:

①public boolean canRead();

②public boolean canWrite();

③public boolean canExecute()(在Mustang中新引入的)。

我创建了一个简单的展示setWritable()和canWrite()方法用法的名为WritableDemo的应用程序。在这个应用程序中,你能够使一个文件系统对象可写或仅能读取,而且还能查看这一许可的当前设置。本文示例源码中的列表1完整地展示了这个文件WritableDemo.java(略)。

时间: 2024-11-02 05:26:02

Java SE 6.0新特性体验的相关文章

C# 3.0新特性体验之Lambda表达式

C#2.0介绍了一个新特性--匿名方法,允许开发者在线(inline)声明自己的函数代码而无须使用委托函数(delegate function).C#3.0中提供了一个新特性--Lambda表达式,它提供了完成相同目标的更加简洁的格式.让我们在讨论Lambda表达式以前仔细研究一下匿名方法. 匿名方法 假设你需要创建一个按钮,当点击它的时候更新ListBox里的内容.在C#1.0和1.1里,你要这样做: public MyForm(){ listBox = new ListBox(...); t

Cocos2d-x 3.0 新特性体验- 回调函数的变化

在cocos2d-x 2.x版本中的回调函数的用法想必大家都很是熟悉,例如在menu item,call back action中都需要大量的使用到回调函数,但是在使用过程中总是感觉到比较冗余麻烦的,在3.0版本,使用到了C++11 的新特性,改进增加了回到函数的使用形式,其中最令人欣慰的是,可以使用闭包,对于有过iOS开发经验的来说,应该很亲切,就是 block. 下面将通过几个例子详细介绍在3.0版本中回调函数的各种用法.温馨提示:由于用到了C++11中的std::function,std:

Cocos2d-x 3.0 新特性体验-触摸事件处理机制

在cocos2d-x 2.x版本中,相信大家都抱怨过其中的触摸机制:在3.0版本中,采用了全新的触摸事件处理机制. 在官方的文档中:点击打开链接  这篇文章有对新的事件分发机制的介绍. 下面,我将通过引擎中自带的sample来探索一下这个新的触摸事件处理机制. 注:例子来自Test cpp/NewEventDispatcherTest 一.例子1 (1)创建三个精灵 [cpp] view plaincopy auto sprite1 = Sprite::create("Images/CyanSq

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比 Application Server Network Deployment, Version 7.0 Operating Systems: AIX, HP-UX, i5/OS, Linux, Solaris, Windows, z/OS Specifications and API documentation 对比的WebSphere版本如下: Version 7.0 Version 6

神经网络API、Kotlin支持,那些你必须知道的Android 8.1预览版和Android Studio 3.0新特性

谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快. 过去的五个月里, Kotlin一直是我们反复谈论的重点.现在要告诉大家的是,Android Studio 3.0可以将Kotlin添加到您的项目中了.最新版本的Android Studio在支持Java 8语言功能上得到了改进,另外一个亮点是,有了用于Gradle 3.0.0的Android插件. 好,下面步入正文. 曾仅用 55 秒发布会的 Android 8.0 Oreo 在时隔两个月

Android Studio3.0新特性及安装图文教程

Android Studio是Android的官方IDE.它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备构建最优应用. 它提供专为Android开发者量身定制的工具,其中包括丰富的代码编辑.调试.测试和性能分析工具. 一.Android Studio3.0新特性 (1).核心IDE更改 我们将基础IDE从IntelliJ 2016.2升级到2017.1.2,在2016.3和 2017.1中增加了许多新功能, 包括参数提示,语义突出显示,搜索中的即时结果等等.

用Java SE 6.0实现高质量桌面集成开发

提要:本文将以具体的实例向你展示Java SE 6在桌面开发中所提供的一系列优秀特征. 一. 引言 随着Java SE 6 Beta的发行,Java开发者再也不需要自己去实现Java本机接口(JNI)便可以在其应用程序中加入桌面产品所具有的特征.这些桌面集成特征现在已成为内核的一个组成部分. 最新的Java标准版本6.0(代码名为Mustang)将在功能上进行一系列的改进--开发者们能够方便地用Java处理安全,JMX,操作系统文件,国际化和桌面开发等一系列问题.Sun在开发这个版本的过程中表现

PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性

前言    今天突然想到PHP官方网站上一转,一眼就看到PHP5推出的通告.虽然以前看到过PHP5的预告,但还是仔细看了PHP 5/Zend Engine 2.0新特性一文,一股JAVA气息扑面而来...   特将该文试译出来,首发于CSDN网站,以飨读者. PHP 5/Zend Engine 2.0新特性徐唤春 译 sfwebsite@hotmail.comhttp://www.php.net/zend-engine-2.php 全新的对象模型PHP中的对象处理部分已完全重写,具有更佳的性能和

MySQL 5.0新特性教程 存储过程:第一讲

mysql|存储过程|教程 作者:mysql AB;翻译:陈朋奕 Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着