最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java讀寫Windows共享文件夾的方法實(shí)例

 更新時(shí)間:2016年11月22日 09:44:02   作者:海濤zht666  
本篇文章主要介紹了Java讀寫Windows共享文件夾的方法實(shí)例,具有一定的參考價(jià)值,有興趣的同學(xué)可以了解一下。

項(xiàng)目常常需要有訪問共享文件夾的需求,例如共享文件夾存儲照片、文件等。那么如何使用Java讀寫Windows共享文件夾呢?

Java可以使用JCIFS框架對Windows共享文件夾進(jìn)行讀寫,就這個(gè)框架可以讓我們像訪問本地文件夾一下訪問遠(yuǎn)程文件夾。

JCIFS的網(wǎng)址: http://jcifs.samba.org/

JCIFS是使用純Java開發(fā)的一個(gè)開源框架,通過smb協(xié)議訪問遠(yuǎn)程文件夾。該框架同時(shí)支持Windows共享文件夾和Linux共享文件夾,不過,Linux共享文件夾需要安裝Samba服務(wù)軟件(官網(wǎng):http://www.samba.org/)。

SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過該協(xié)議可以訪問服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源。通過設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機(jī)分享資源,還能與全世界的電腦分享資源。

本文主要學(xué)習(xí)一下使用Java訪問Windows共享文件夾的方法。

首先找一臺Windows機(jī)器,在任意位置創(chuàng)建文件夾:sharedFolder,并設(shè)置為共享,設(shè)置共享用戶名:share,密碼:admin。

(Windows7下設(shè)置共享文件夾方法:Windows7下設(shè)置共享文件夾方法:http://m.fzitv.net/os/windows/78034.html

不論是Windows還是Linux的共享文件夾,使用Java smb訪問共享文件夾的代碼都是一樣的,只是Windows與Linux配置共享文件夾的方式不一樣。

測試代碼如下:

InputStream in = null; 
OutputStream out = null; 
try { 
  //獲取圖片 
  File localFile = new File("C:/testjpg"); 
  String remotePhotoUrl = "smb://share:admin@11/sharedFolder/"; //存放圖片的共享目錄 
  SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS_"); 
  SmbFile remoteFile = new SmbFile(remotePhotoUrl + "/" + fmtformat(new Date()) + localFilegetName()); 
  remoteFileconnect(); //嘗試連接 
 
  in = new BufferedInputStream(new FileInputStream(localFile)); 
  out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile)); 
 
  byte[] buffer = new byte[4096]; 
  int len = 0; //讀取長度 
  while ((len = inread(buffer, 0, bufferlength)) != -1) { 
    outwrite(buffer, 0, len); 
  } 
  outflush(); //刷新緩沖的輸出流 
} 
catch (Exception e) { 
  String msg = "發(fā)生錯(cuò)誤:" + egetLocalizedMessage(); 
  Systemoutprintln(msg); 
} 
finally { 
  try { 
    if(out != null) { 
      outclose(); 
    } 
    if(in != null) { 
      inclose(); 
    } 
  } 
  catch (Exception e) {} 
} 

以上代碼中,使用了JCIFS框架提供的SmbFile類,這個(gè)類和Java的File類比較相似,使用這個(gè)類的對象,可以處理遠(yuǎn)程文件的讀寫。使用File對象讀取本地文件,然后使用SmbFile對象寫入遠(yuǎn)程文件。SmbFile的connect()方法可以嘗試連接遠(yuǎn)程文件夾,如果賬號或密碼錯(cuò)誤,將拋出連接異常。

當(dāng)下載遠(yuǎn)程文件時(shí),使用SmbFile對象讀取遠(yuǎn)程文件即可,代碼如下:

InputStream in = null ; 
ByteArrayOutputStream out = null ; 
try { 
  //創(chuàng)建遠(yuǎn)程文件對象 
  String remotePhotoUrl = "smb://share:admin@11/sharedFolder/testjpg"; 
  SmbFile remoteFile = new SmbFile(remotePhotoUrl); 
  remoteFileconnect(); //嘗試連接 
  //創(chuàng)建文件流 
  in = new BufferedInputStream(new SmbFileInputStream(remoteFile)); 
  out = new ByteArrayOutputStream((int)remoteFilelength()); 
  //讀取文件內(nèi)容 
  byte[] buffer = new byte[4096]; 
  int len = 0; //讀取長度 
  while ((len = inread(buffer, 0, bufferlength)) != - 1) { 
    outwrite(buffer, 0, len); 
  } 
 
  outflush(); //刷新緩沖的輸出流 
  return outtoByteArray(); 
} 
catch (Exception e) { 
  String msg = "下載遠(yuǎn)程文件出錯(cuò):" + egetLocalizedMessage(); 
  Systemoutprintln(msg); 
} 
finally { 
  try { 
    if(out != null) { 
      outclose(); 
    } 
    if(in != null) { 
      inclose(); 
    } 
  } 
  catch (Exception e) {} 
} 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go Java算法之字符串中第一個(gè)唯一字符詳解

    Go Java算法之字符串中第一個(gè)唯一字符詳解

    這篇文章主要為大家介紹了Go Java算法之字符串中第一個(gè)唯一字符詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 使用SpringBoot生成war包的流程步驟

    使用SpringBoot生成war包的流程步驟

    一般情況下,在SpringBoot項(xiàng)目開發(fā)完成進(jìn)行服務(wù)器部署時(shí),都是打成JAR包進(jìn)行部署運(yùn)行的,但是在有些情況下也需要將其打成War包使用Tomcat進(jìn)行部署,本篇文章就簡單介紹一下SpringBoot如何打成War包,需要的朋友可以參考下
    2024-10-10
  • Java?實(shí)戰(zhàn)范例之校園二手市場系統(tǒng)的實(shí)現(xiàn)

    Java?實(shí)戰(zhàn)范例之校園二手市場系統(tǒng)的實(shí)現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+mysql+maven+tomcat實(shí)現(xiàn)一個(gè)校園二手市場系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • 通過FeignClient如何獲取文件流steam?is?close問題

    通過FeignClient如何獲取文件流steam?is?close問題

    這篇文章主要介紹了通過FeignClient如何獲取文件流steam?is?close問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 基于resty orm的ActiveRecord操作數(shù)據(jù)指南

    基于resty orm的ActiveRecord操作數(shù)據(jù)指南

    這篇文章主要為大家介紹了基于resty orm的ActiveRecord操作數(shù)據(jù)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java發(fā)送form-data請求的實(shí)例代碼

    Java發(fā)送form-data請求的實(shí)例代碼

    在Java中發(fā)送form-data請求,可以使用Apache?HttpClient或OkHttp這樣的HTTP客戶端庫來發(fā)送請求,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10
  • SpringBoot+Ajax+redis實(shí)現(xiàn)隱藏重要接口地址的方法

    SpringBoot+Ajax+redis實(shí)現(xiàn)隱藏重要接口地址的方法

    這篇文章主要介紹了SpringBoot+Ajax+redis實(shí)現(xiàn)隱藏重要接口地址,本篇文章主要講訴使用SpringBoot項(xiàng)目配合Ajax和redis實(shí)現(xiàn)隱藏重要接口地址,這里我以隱藏秒殺地址為例,需要的朋友可以參考下
    2024-03-03
  • 解決idea報(bào)錯(cuò) Connot resolve column 的問題

    解決idea報(bào)錯(cuò) Connot resolve column 的問題

    這篇文章主要介紹了解決idea報(bào)錯(cuò) Connot resolve column 的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Nacos源碼之注冊中心的實(shí)現(xiàn)詳解

    Nacos源碼之注冊中心的實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Nacos源碼之注冊中心的實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 不使用他人jar包情況下優(yōu)雅的進(jìn)行dubbo調(diào)用詳解

    不使用他人jar包情況下優(yōu)雅的進(jìn)行dubbo調(diào)用詳解

    這篇文章主要為大家介紹了不使用他人jar包情況下優(yōu)雅的進(jìn)行dubbo調(diào)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評論

榆中县| 绥中县| 惠安县| 正蓝旗| 怀仁县| 宜丰县| 温泉县| 盐城市| 安乡县| 邻水| 明星| 正镶白旗| 红安县| 镶黄旗| 富蕴县| 岢岚县| 枞阳县| 土默特右旗| 天台县| 广昌县| 泰顺县| 馆陶县| 白银市| 姚安县| 东方市| 嘉祥县| 宿迁市| 中宁县| 桃江县| 明星| 镇赉县| 万荣县| 丹寨县| 新巴尔虎左旗| 永胜县| 长丰县| 清流县| 辉县市| 鹤岗市| 廉江市| 城市|