激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Java讀寫Windows共享文件夾的方法實例

Java讀寫Windows共享文件夾的方法實例

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

本篇文章主要介紹了Java讀寫Windows共享文件夾的方法實例,具有一定的參考價值,有興趣的同學可以了解一下。

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

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

JCIFS的網址: http://jcifs.samba.org/

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

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

本文主要學習一下使用Java訪問Windows共享文件夾的方法。

首先找一臺Windows機器,在任意位置創建文件夾:sharedFolder,并設置為共享,設置共享用戶名:share,密碼:admin。

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

測試代碼如下:

?
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; //讀取長度
  while ((len = inread(buffer, 0, bufferlength)) != -1) {
    outwrite(buffer, 0, len);
  }
  outflush(); //刷新緩沖的輸出流
}
catch (Exception e) {
  String msg = "發生錯誤:" + egetLocalizedMessage();
  Systemoutprintln(msg);
}
finally {
  try {
    if(out != null) {
      outclose();
    }
    if(in != null) {
      inclose();
    }
  }
  catch (Exception e) {}
}

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

當下載遠程文件時,使用SmbFile對象讀取遠程文件即可,代碼如下:

?
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 {
  //創建遠程文件對象
  String remotePhotoUrl = "smb://share:admin@11/sharedFolder/testjpg";
  SmbFile remoteFile = new SmbFile(remotePhotoUrl);
  remoteFileconnect(); //嘗試連接
  //創建文件流
  in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
  out = new ByteArrayOutputStream((int)remoteFilelength());
  //讀取文件內容
  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 = "下載遠程文件出錯:" + egetLocalizedMessage();
  Systemoutprintln(msg);
}
finally {
  try {
    if(out != null) {
      outclose();
    }
    if(in != null) {
      inclose();
    }
  }
  catch (Exception e) {}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

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

延伸 · 閱讀

精彩推薦
913
主站蜘蛛池模板: 91九色丨porny丨国产jk | 亚洲av毛片在线观看 | 蜜桃精品视频 | 国产亚洲精品久久久久5区 99精品视频在线 | 国产毛片自拍 | 国产精品一区在线观看 | www.狠狠操.com| 国产亚洲精品久久 | 日本s级毛片免费观看 | 亚洲一区二区在线 | 国产乱淫a∨片免费观看 | 黄色网址在线免费 | 亚洲精品久久久久久久久久久 | 欧美黄色大片免费观看 | 成人免费一区 | 亚洲射逼 | 毛片视频网站在线观看 | 国产免费最爽的乱淫视频a 毛片国产 | 九七在线视频 | 国产成人高清在线 | 免费国产一区二区视频 | 免费嗨片首页中文字幕 | 香蕉视频99 | 免费播放欧美毛片 | 一级黄色淫片 | www69xxxxx| 午夜精品久久久久久久96蜜桃 | 久久大陆 | 色日本视频| 92看片淫黄大片欧美看国产片 | 国产亚洲综合精品 | 国产成人精品无人区一区 | 操操插插 | 视频一区国产精品 | 欧美一级毛片免费观看视频 | 国产在线播放一区二区 | 久久精品一区视频 | 色阁阁69婷婷 | 超碰99在线观看 | 国产va在线观看 | 日韩视频―中文字幕 |