一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

用JAVA訪問共享文件系統(tǒng)

 free_light 2014-02-01

  前言
  在Microsoft 網(wǎng) 絡 系 統(tǒng) 中,SMB(Server Message Block, 服 務 信 息 塊) 協(xié) 議 是Windows for Workgroup(WfWg)、Windows 95、Windows NT 和LanManager 用 來 實 現(xiàn) 共 享 局 域 網(wǎng) 上 文 件 和 打 印 機 的 協(xié) 議。 對 于 利 用linux 和Windows NT 構 建 的 局 域 網(wǎng) 來 說,Samba 就 是 為Linux 提 供 的SMB 客 戶 程 序/ 服 務 器 程 序 的 軟 件 包, 其 功 能 是 實 現(xiàn)Windows 和Linux 互 相 共 享 對 方 的 磁 盤 空 間 和 打 印 機。通用網(wǎng)絡文件系統(tǒng)簡稱CIFS,它事實上是windows平臺文件共享的標準協(xié)議,它是windows eXPlorer,網(wǎng)絡鄰居和映射網(wǎng)絡驅動器的底層實現(xiàn)協(xié)議。java具有天然的平臺無關性,使用JAVA可以訪問任何類型的服務器或客戶機上的共享文件系統(tǒng),并且編寫的軟件產(chǎn)品可以運行于任何平臺,因此用JAVA訪問共享文件系統(tǒng)在企業(yè)應用中具有得天獨厚的優(yōu)勢。
  
  JAVA中的CIFS實現(xiàn)
  Jcifs是CIFS在JAVA中的一個實現(xiàn),是samba組織本著linux的精神,負責維護開發(fā)的一個開源項目。這個項目專注于使用java語言對cifs協(xié)議的設計和實現(xiàn)。他們將jcifs設計成為一個完整的,豐富的,具有可擴展能力且線程安全的客戶端庫。這一庫可以應用于各種java虛擬機訪問遵循CIFS/SMB網(wǎng)絡傳輸協(xié)議的網(wǎng)絡資源。類似于java.io.File的接口形式,在多線程的工作方式下被證實是有效而輕易使用的。目前jcifs的最新版本是jcifs-0.8.0b,你可以在本文最后列出的參考資料中獲得下載這一類庫的網(wǎng)址,這一版本還支持分布式的文件系統(tǒng),本文尚不涉及這一內(nèi)容。
  
  JAVA/CIFS程序設計
  假如你曾經(jīng)使用過java的文件操作功能,那么你將很輕易把握jcifs的開發(fā)方法。Jcifs通過類似如下的資源url定位一個資源:
  
  smb://guest:1234@192.168.3.56/share/a.txt
  
  這個url的開始部分smb:// 說明了這是一個smb類型的url;接下來的guest和1234分別是訪問共享資源的用戶名稱和密碼;@后面是要訪問的資源的主機名或ip地址。最后是資源的共享文件夾名稱和共享資源名。
  
  在JAVA程序中,使用如下方式獲得一個遠程共享文件的句柄:
  
  SmbFile file = new SmbFile("smb://guest:1234@192.168.3.56/share/a.txt");
  
  這里的句柄不僅限于遠程的共享文件,還可能是共享文件夾。isFile()方法和isDirectory()用來判定這個句柄對應的資源的真實屬性。假如是共享文件夾,通過調用它的list()方法將獲得其中資源的列表。List方法支持過濾器機制,有兩種過濾器可供使用,一種是SmbFileFilter,另一種是SmbFilenameFilter,這兩個在jcifs中作為接口出現(xiàn),你可以根據(jù)自己的需要派生出個性化的過濾器,實現(xiàn)接口中的accept方法,以滿足不同業(yè)務的需求。
  
  SmbFileInputStream是smb文件的輸入流,它的功能是以流的方式打開一個SmbFile:
  
  SmbFileInputStream in = new SmbFileInputStream(file);
  
  SmbFileInputStream提供read方法,你可以從這個流中讀出遠程文件全部的內(nèi)容。
  
  至此,你已經(jīng)把握了java訪問smb文件系統(tǒng)的基本方法。
  
  SmbFileOutputStream是smb文件的輸入流,可以向遠程文件系統(tǒng)通過smb寫入數(shù)據(jù),方法與上面類似,不再贅述。
  
  本文后面附帶的源代碼是一個完整的例子,它完成功能很簡單,就是將另一臺電腦上指定共享文件夾下的某些文件拷貝到本機的指定目錄下。通過這個例子,相信你很輕易將它移植到你的開發(fā)產(chǎn)品中。
  
  第一步,設置運行環(huán)境。將源代碼解壓縮,將lib目錄下的名稱為jcifs-0.8.0b.jar的文件加入到你的操作系統(tǒng)的classpath中,使示例程序運行時能夠找到這個庫。
  
  第二步,在另一臺計算機上建立名稱為share的共享文件夾,用戶名為guest,密碼也為guest。假設這臺計算機的ip地址是192.168.0.2。
  
  第三步,在剛才建立的共享文件夾下放置兩個文件,名稱分別為hello.txt,bye.txt。文件的內(nèi)容無所謂。
  
  第三步,在本地計算機上的C盤跟目錄下建立一個名稱為tmp的空目錄,置此目錄可寫。
  
  第四步,編譯運行Sample1.java,并運行:
  
  Java Sample1 192.168.3.52 guest guest /share/ c:/tmp/
  
  檢查c:\tmp文件夾,會發(fā)現(xiàn)hello.txt這個文件被復制到了本機,而bye.txt沒有被復制,因為Sample1.java中使用了過濾器,僅答應名稱為hello開頭的文件被拷貝。
  
  后記
  對共享文件系統(tǒng)的訪問是內(nèi)部辦公系統(tǒng)等涉及到文件遷移的軟件產(chǎn)品開發(fā)過程中不可回避的課題,jCifs是一套針對這一課題完整而強大的解決方案,通過它你可以實現(xiàn)對任何共享文件系統(tǒng)的訪問。 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品二区三区免费播放心| 日韩一区二区三区有码| 国产精品午夜小视频观看| 日本道播放一区二区三区| 国产一区欧美一区日韩一区| 亚洲综合色婷婷七月丁香| 亚洲中文字幕日韩在线| 国产精品亚洲欧美一区麻豆| av在线免费播放一区二区| 亚洲中文字幕视频在线播放| 深夜少妇一区二区三区| 欧美激情一区二区亚洲专区| 亚洲高清一区二区高清| 婷婷激情四射在线观看视频| 久久99亚洲小姐精品综合| 欧美熟妇一区二区在线| 日韩在线精品视频观看| 神马午夜福利免费视频| 夫妻性生活黄色录像视频| 日韩国产亚洲一区二区三区| 女同伦理国产精品久久久| 久久亚洲精品中文字幕| 亚洲熟女一区二区三四区| 91欧美日韩国产在线观看| 亚洲中文字幕三区四区| 亚洲av日韩av高潮无打码| 91国内视频一区二区三区| 视频在线观看色一区二区| 99日韩在线视频精品免费| 日韩特级黄色大片在线观看| 黄色污污在线免费观看| 日本人妻精品中文字幕不卡乱码| 国产一级特黄在线观看| 熟女乱一区二区三区四区| 激情内射亚洲一区二区三区 | 99精品国产一区二区青青| 亚洲国产成人一区二区在线观看| 又黄又硬又爽又色的视频| 国产精品流白浆无遮挡| 一区二区欧美另类稀缺| 99久久国产精品免费|