打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
基于SMB/JCIFS协议的共享文件上传和下载
三十的狼
>《java共享服务器文件》
2018.09.15
关注
Java代码
package
com.smb;
import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.OutputStream;
import
jcifs.smb.SmbFile;
import
jcifs.smb.SmbFileInputStream;
import
jcifs.smb.SmbFileOutputStream;
public
class
Smbtest {
/**
* 从局域网中共享文件中得到文件并保存在本地磁盘上
* @param remoteUrl 共享电脑路径 如:smb//administrator:123456@172.16.10.136/smb/1221.zip , smb为共享文件
* 注:如果一直出现连接不上,有提示报错,并且错误信息是 用户名活密码错误 则修改共享机器的文件夹选项 查看 去掉共享简单文件夹的对勾即可。
* @param localDir 本地路径 如:D:/
*/
public
static
void
smbGet(String remoteUrl,String localDir){
InputStream in =
null
;
OutputStream out =
null
;
try
{
SmbFile smbFile =
new
SmbFile(remoteUrl);
String fileName = smbFile.getName();
File localFile =
new
File(localDir+File.separator+fileName);
in =
new
BufferedInputStream(
new
SmbFileInputStream(smbFile));
out =
new
BufferedOutputStream(
new
FileOutputStream(localFile));
byte
[]buffer =
new
byte
[
1024
];
while
((in.read(buffer)) != -
1
){
out.write(buffer);
buffer =
new
byte
[
1024
];
}
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
try
{
out.close();
in.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
/**
* 把本地磁盘中的文件上传到局域网共享文件下
* @param remoteUrl 共享电脑路径 如:smb//administrator:123456@172.16.10.136/smb
* @param localFilePath 本地路径 如:D:/
*/
public
static
void
smbPut(String remoteUrl,String localFilePath){
InputStream in =
null
;
OutputStream out =
null
;
try
{
File localFile =
new
File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile =
new
SmbFile(remoteUrl+
"/"
+fileName);
in =
new
BufferedInputStream(
new
FileInputStream(localFile));
out =
new
BufferedOutputStream(
new
SmbFileOutputStream(remoteFile));
byte
[]buffer =
new
byte
[
1024
];
while
((in.read(buffer)) != -
1
){
out.write(buffer);
buffer =
new
byte
[
1024
];
}
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
try
{
out.close();
in.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
public
static
void
main(String[] args) {
smbPut(
"smb://administrator:123456@172.16.10.136/smb"
,
"E:/1221.zip"
);
smbGet(
"smb://administrator:123456@172.16.10.136/smb/1221.zip"
,
"D:/"
);
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
Java中JCIFS实现局域网访问
在java中如何用键盘输入一个数,字符,字符串
高效读取大数据文本文件(上亿行数据)
JAVA中使用jcifs集成AD域用户认证
Netty成功向客户端发送及接收16进制数据
java压缩解压代码
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×