欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

JCIFS是使用純Java開(kāi)發(fā)的一個(gè)開(kāi)源框架,通過(guò)smb協(xié)議訪問(wèn)遠(yuǎn)程文件夾。該框架同時(shí)支持Windows共享文件夾和Linux共享文件夾,不過(guò),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é)議是客戶(hù)機(jī)/服務(wù)器型協(xié)議,客戶(hù)機(jī)通過(guò)該協(xié)議可以訪問(wèn)服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源。通過(guò)設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機(jī)分享資源,還能與全世界的電腦分享資源。

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

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

(Windows7下設(shè)置共享文件夾方法:Windows7下設(shè)置共享文件夾方法:http://www.dbjr.com.cn/os/windows/78034.html

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

測(cè)試代碼如下:

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; //讀取長(zhǎng)度 
  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類(lèi),這個(gè)類(lèi)和Java的File類(lèi)比較相似,使用這個(gè)類(lèi)的對(duì)象,可以處理遠(yuǎn)程文件的讀寫(xiě)。使用File對(duì)象讀取本地文件,然后使用SmbFile對(duì)象寫(xiě)入遠(yuǎn)程文件。SmbFile的connect()方法可以嘗試連接遠(yuǎn)程文件夾,如果賬號(hào)或密碼錯(cuò)誤,將拋出連接異常。

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

InputStream in = null ; 
ByteArrayOutputStream out = null ; 
try { 
  //創(chuàng)建遠(yuǎn)程文件對(duì)象 
  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; //讀取長(zhǎng)度 
  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) {} 
} 

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

相關(guān)文章

  • SpringBoot @Import與@Conditional注解使用詳解

    SpringBoot @Import與@Conditional注解使用詳解

    在了解spring boot自動(dòng)配置原理前,再來(lái)了解下兩個(gè)注解@Import注解和@Conditional注解,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿(mǎn)足條件給容器注冊(cè)bean
    2022-10-10
  • SpringBoot?調(diào)用外部接口的三種實(shí)現(xiàn)方法

    SpringBoot?調(diào)用外部接口的三種實(shí)現(xiàn)方法

    Spring Boot調(diào)用外部接口的方式有多種,常見(jiàn)的有以下三種方式:RestTemplate、Feign 和 WebClient,本文就詳細(xì)介紹一下,感興趣的可以了解一下
    2023-08-08
  • Java分代垃圾回收策略原理詳解

    Java分代垃圾回收策略原理詳解

    這篇文章主要介紹了Java分代垃圾回收策略原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問(wèn)題及解決

    springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問(wèn)題及解決

    這篇文章主要介紹了springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • spring?boot?導(dǎo)出數(shù)據(jù)到excel的操作步驟(demo)

    spring?boot?導(dǎo)出數(shù)據(jù)到excel的操作步驟(demo)

    這篇文章主要介紹了spring?boot?導(dǎo)出數(shù)據(jù)到excel的實(shí)現(xiàn)步驟,文中通過(guò)打開(kāi)一個(gè)平時(shí)練習(xí)使用的springboot的demo給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-03-03
  • java中tomcat的80端口被占用問(wèn)題解決

    java中tomcat的80端口被占用問(wèn)題解決

    java中tomcat的80端口被占用問(wèn)題解決,需要的朋友可以參考一下
    2013-03-03
  • java 生成文字圖片的示例代碼

    java 生成文字圖片的示例代碼

    本篇文章主要介紹了java 生成文字圖片的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • IDEA的Mybatis Generator駝峰配置問(wèn)題

    IDEA的Mybatis Generator駝峰配置問(wèn)題

    這篇文章主要介紹了IDEA的Mybatis Generator駝峰配置問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解

    Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解

    這篇文章主要介紹了Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java中的BigDecimal原理詳解

    Java中的BigDecimal原理詳解

    這篇文章主要介紹了Java中的BigDecimal原理詳解,對(duì)于日常開(kāi)發(fā)過(guò)程中出現(xiàn)小數(shù)的問(wèn)題,通常都是使用float或者double類(lèi)型來(lái)處理,在java中float占用四個(gè)字節(jié), double類(lèi)型占用8個(gè)字節(jié),需要的朋友可以參考下
    2023-09-09

最新評(píng)論