java 定制读取局域网共享文件,无需服务端

本文介绍如何使用Java和jcifs-1.3.17.jar库实现从局域网中读取和下载共享文件,无需服务器。通过提供工作组名、用户名、密码和IP地址等信息,可以读取指定计算机上的文件并保存到本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java 制定下载局域网共享文件
说明:用到第三方JAR包“jcifs-1.3.17.jar”
1、读取局域网文件类
<br />
import java.io.FileOutputStream;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;

/**
 * 功能    :下载局域网内指定IP地址计算机上的文件<br>rr
 * 需要获取:共享文件夹名称、用户组、用户名、用户密码
 * @author Administrator
 *
 */
public class LoadRemoteFile {
/**
 * 说明
 * @param WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE<br>
 * 格式:smb://WORKGROUP;USER:PASSWORD@IP/SHAREDIR/LOADFILE<br>
 * 例如:<br>
 * 	1、smb://WORKGROUP;administrator:y195811@192.168.8.250/graphxx/load.INI<br>
 *      2、无需用户名密码://192.168.8.250/graphxx/load.INI<br>
 * 	3、需用户名密码  :Smb://username:password@ip/sharefolder
 * @param LOCALFILE<br>
 * 例如:F:/LoadFile/load.ini
 */
public LoadRemoteFile(String WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE,String LOCALFILE )
{
		loadRemoteFile(WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE,LOCALFILE);
}
/*
private String remoteWorkgroup="WORKGROUP";
private String remoteUser="administrator";
private String remotePassword="y195811";
private String remoteIp="192.168.8.250";
private String remoteShareDir="/graphxx/";
private String remoteLoadFile="DATABASE2.INI";
private int    remoteFileLength=0;

private String localDir="F:/LoadFile/";

private String remote="smb://"+remoteWorkgroup+";"+remoteUser+":"+remotePassword
+"@"+remoteIp+remoteShareDir+remoteLoadFile;
private String localLoadFile="DATABASE2.INI";
*/
/**
 * 下载指定计算机(IP)共享文件夹文件
 * @param remoteUrl : 局域网其他计算机地址
 * @param localUrl  : 本机文件地址    例如: c:/
 */
public void loadRemoteFile(String remoteUrl,String localUrl)
{
		try {
			//远程文件链接
			SmbFile f=new SmbFile(remoteUrl);
			if(f==null)return;
			
			//获取远程文件大小
			int remoteFileLength=f.getContentLength();
			//存放文件内容数组
			byte[]  fsize=new byte[remoteFileLength];
			
			SmbFileInputStream remoteInput=new SmbFileInputStream(f);
			FileOutputStream loadFile=new FileOutputStream(localUrl);
			
			while(-1!=remoteInput.read(fsize)){
				loadFile.write(fsize);
			}
			loadFile.close();
			remoteInput.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
}
}


2、测试下载局域网文件

/**
 * 功能:测试下载指定IP地址计算机上的文件
 * 条件:共享文件夹、用户组、用户名、用户密码
 */
public class RemoteFileLoadTest {
	static void print(String str)
	{
		System.out.println(str);
	}
	private String remoteWorkgroup="WORKGROUP";
	private String remoteUser="administrator";
	private String remotePassword="y195811";
	private String remoteIp="192.168.8.250";
	private String remoteShareDir="/graphxx/";
	private String remoteLoadFile="DATABASE2.INI";
	
	private String localDir="";
	
	public RemoteFileLoadTest()
	{
		String remote="smb://"+remoteWorkgroup+";"+remoteUser+":"+remotePassword
		+"@"+remoteIp+remoteShareDir+remoteLoadFile;
		
		localDir="F:/LoadFile/";
		
		String local=localDir+remoteLoadFile;
		
		new LoadRemoteFile(remote,local);


	}
	public static void main(String[] args)
	{
			new RemoteFileLoadTest();
	}


}


</pre>


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值