一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java讀寫(xiě)Windows共享文件夾的方法實(shí)例

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

2020-07-06 14:49海濤zht666 JAVA教程

本篇文章主要介紹了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é)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(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è)置共享用戶名:share,密碼:admin。

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

測(cè)試代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)程文件即可,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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í)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/zht666/article/details/27079995

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: a亚洲天堂 | 精品一区在线 | 精品国产原创在线观看视频 | 男人好大好硬好爽免费视频 | 18xxxx中国| 99久久免费视频 | 天堂伊人网 | 免费我看视频在线观看 | 欧美人xxxxxbbbb | 小仙夜晚慰自催眠mp3护士篇 | 五月婷婷在线免费观看 | 2021最新国产成人精品视频 | 香蕉tv国产在线永久播放 | 日韩免费在线视频 | 国产欧美另类久久精品91 | 欧美高清在线精品一区 | 亚洲日本中文字幕天天更新 | 欧美日韩一区二区三在线 | 久久99国产亚洲高清观着 | 亚洲精品一区制服丝袜 | brazzersxxx欧美| 国产三级精品三级男人的天堂 | 91精品综合国产在线观看 | 日韩一级片在线免费观看 | 国产自拍影院 | 精品国产一级毛片大全 | 国产精品一区二区久久不卡 | 十六以下岁女子毛片免费 | 2022国产麻豆剧传媒古装 | 和两个男人玩3p好爽视频 | 手机看片黄色 | 女人叉开腿让男人捅 | 日韩精品特黄毛片免费看 | 国产精品久久久久久久久齐齐 | 久久日韩精品无码一区 | 美女gif跪趴式抽搐动态图 | 17个农民工婉莹第一部 | 啊啊啊好大在线观看 | 欧美一区二区三区四区在线观看 | 7777色鬼xxxx欧美色夫 | 精品免费tv久久久久久久 |