国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 編程應用 > 正文

實例分析Java SE 6.0新增功能

2019-11-18 11:31:46
字體:
來源:轉載
供稿:網友
下載本文源代碼

  java 6.0標準版(Mustang)包含了大量使Java開發更為輕易的特性。在本文中,我們將討論通過部分新特性來幫助你實現如下功能:

  · 設置文件和目錄許可權

  · 獲取分區上自由空間和可用空間數

  · 把Component對象添加到JTabbedPane的選項卡上

  · 在你的Java基礎類/Swing(JFC/Swing)應用程序中使用流行的SwingWorker類

  因此,假如JSR 270專家組同意采納這些特征,那么在Mustang的下一個發行版本中你就會看到這些特征。

  注重:為了運行本文中的源碼,你必須下載并安裝Mustang的最新版本。

  一、 設置文件和目錄權限

  現在,從Mustang build 31開始,你可以在本地文件系統中設置一個文件的可讀、可寫和可執行標志。這項功能已經被添加到java.io.File類中,并通過使用下列方法來實現:

public boolean setReadable(boolean readable, boolean owNeronly)
public boolean setReadable(boolean readable)
public boolean setWritable(boolean writable, boolean ownerOnly)
public boolean setWritable(boolean writable)
public boolean setExecutable(boolean executable, boolean ownerOnly)
public boolean setExecutable(boolean executable)
  假如你曾某種UNIX系統上工作過,那么你應該對這些方法非常熟悉-其實它們實現了chmod命令的一些功能。這些方法試圖設置由現在的File對象所描述的文件或目錄的適當權限。假如把第二個可選參數設置為true,那么該權限將僅應用于當前所有者標志。否則,這些方法將應用到所有用戶。注重,假如底層文件系統沒法區分該所有者和其他所有者的權限(在一些版本的Windows中就是這樣),那么這一權限將應用到每一個人,而不管傳遞的是什么值。

  假如你是一個使用NT文件系統的Windows用戶,那么你應該讀一下這個文檔,它解釋了如何使用各種不同的選項來控制不同用戶的文件存取權限問題。

  如你所想,假如用戶沒有權限來改變這個抽象路徑名的存取權限,那么第一個方法就會失?。ㄒ簿褪钦f,返回false);而且,這些方法也會拋出一個java.lang.SecurityException異常-假如存在一個Java安全治理器并且它的checkRead()/checkWrite()/checkExecute()方法不答應存取該文件的話。

  下表1顯示了在多種文件系統上運行這些命令的典型結果,以及這些命令在不同目標操作系統上的可用性。

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

命令在Windows xp系統上的返回值在linux系統上的返回值在solaris系統上的返回值setReadable(true)true True(等價于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)
  決定是否文件是可讀,可寫或可執行的方法與這個平臺的前一個版本-Java 2平臺,標準版(J2SE)5.0-保持一致。

public boolean canRead();
public boolean canWrite();
public boolean canExecute();
  二、 取得硬盤分配空間

  除了答應你設置文件和目錄權限外,Mustang還為你提供了三個新方法來決定當前磁盤分區中的可用空間數,這是由一個java.io.File對象來描述的:

public long getTotalSpace();
public long getFreeSpace();
public long getUsableSpace();
  每一個這些方法返回要求的由java.io.File所描述的分區的字節大小,否則,假如從File對象中無法取得一個分區則返回值為0L。

  借助于getFreeSpace()和getUsableSpace()方法,未分配字節的返回數是(根據有關文檔):"這僅是一種提示而不是保證-有可能使用大多數或所有這些字節;但緊跟這個調用之后的未分配的字節數很可能是準確的,當然也有可能因某些外部I/O操作(包括在該虛擬機外面所作的系統調用)而導致不準確。"

  那么,在這個兩個方法之間有什么區別呢?getFreeSpace()方法返回分區的自由空間數量的一個即時數。而getUsableSpace()方法還包含了另外一些功能來檢查寫許可和其它操作系統限制,這將返回一個可用空間數的更好的估計值。假如你想決定在寫向一個文件之前是否你有足夠的磁盤空間,那么,典型情況下getUsableSpace()將給你一個更精確的估計值。注重,假如安裝了一個安全治理器并且它不答應對于RuntimePermission("getFileSystemAttributes")進行調用,那么這兩個方法都將拋出一個SecurityException異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍溪县| 花垣县| 安多县| 乌拉特中旗| 新昌县| 任丘市| 万盛区| 平遥县| 和平区| 临安市| 衡南县| 自治县| 玛沁县| 香河县| 丰宁| 遂宁市| 乐亭县| 弥勒县| 邵阳县| 新竹县| 天等县| 囊谦县| 德保县| 吴忠市| 安远县| 区。| 习水县| 府谷县| 宁安市| 张家口市| 石门县| 商城县| 东辽县| 杭锦旗| 加查县| 荣昌县| 平顺县| 兴安盟| 丹棱县| 青岛市| 丹棱县|