一、引言
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(略)。
三、桌面集成
Sun的Java桌面开发小组引入了若干新的特征以进一步提高Java在桌面开发领域的影响。其中三个著名的特征是:Splash屏幕支持(它让应用程序在启动过程中显示Splash屏幕),系统托盘支持(它让应用程序把图标,提示窗信息和弹出菜单添加到系统托盘),和一组新的桌面API。
现在,我们来讨论桌面API,它有助于无缝地把Java应用程序与桌面集成到一起。该API支持Java应用程序使用一个特定的统一资源标识符(URI)启动操作系统的缺省的浏览器;启动OS的缺省的电子邮件客户端;以及启动应用程序以打开、编辑或打印与该应用程序相关联的文件。
桌面API使用OS的文件关联机制来启动关联到特定的文件类型的应用程序。例如,.doc文件扩展经常与微软的Word关联。经由桌面API,一个Java应用程序能够启动Word以打开、打印或编辑与这个扩展名相关联的文件。
| 共4页: 1 [2] [3] [4] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |