由于工作需要读取局域网中一台机器的 共享目录中的文件,需要jcifs-1.1.11.jar的支持,使用SMB协议协议,以下是实现了远程读取并复制到本地,然后删除本地文件的功能:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
public class TestReadSmb {
public static void main(String[] args) ...{
String smbMachine="smb://10.108.23.200/temp/说明文件.txt";
String localPath="D:/temp";
File file=readFromSmb(smbMachine,localPath);
removeFile(file);
}
/** ***
* 从smbMachine读取文件并存储到localpath指定的路径
*
* @param smbMachine
* 共享机器的文件,如smb://xxx:xxx@10.108.23.112/myDocument/测试文本.txt,xxx:xxx是共享机器的用户名密码
* @param localpath
* 本地路径
* @return
*/
public static File readFromSmb(String smbMachine,String localpath){
File localfile=null;
InputStream bis=null;
OutputStream bos=null;
try ...{
SmbFile rmifile = new SmbFile(smbMachine);
String filename=rmifile.getName();
bis=new BufferedInputStream(new SmbFileInputStream(rmifile));
localfile=new File(localpath+File.separator+filename);
bos=new BufferedOutputStream(new FileOutputStream(localfile));
int length=rmifile.getContentLength();
byte[] buffer=new byte[length];
Date date=new Date();
bis.read(buffer);
bos.write(buffer);
Date end=new Date();
int time= (int) ((end.getTime()-date.getTime())/1000);
if(time>0)
System.out.println("用时:"+time+"秒 "+"速度:"+length/time/1024+"kb/秒");
} catch (Exception e) ...{
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}finally{
try {
bos.close();
bis.close();
} catch (IOException e) {
// // TODO Auto-generated catch block
e.printStackTrace();
}
}
return localfile;
}
public static boolean removeFile(File file) {
return file.delete();
}
}
分享到:
相关推荐
在Java编程环境中,有时我们需要与Windows操作系统进行交互,例如访问共享目录并下载其中的文件。这个过程涉及到几个关键的技术点,包括系统调用、网络通信和文件操作。在这个场景下,我们将通过`SmbUtils.java`和`...
首先,在 B 服务器中创建 access 数据库,并创建一个测试数据库,例如 testdb.mdb,然后在 E:\mydb 目录下创建一个 ODBC 数据源。 其次,在 B 服务器中配置并启动 RmiJdbc 服务,下载 RmiJdbc.jar 包,并配置系统...
Java Community Interface for File Systems (JCIFS) 是一个开源的Java库,它允许Java应用程序通过SMB(Server Message Block)协议来实现对网络上共享资源的访问。标题中的“jcifs java远程访问”指的是使用JCIFS库...
Java远程共享目录的操作代码 Java远程共享目录的操作代码是指使用Java语言来操作远程共享目录的实现代码。这种操作代码非常重要,因为它涉及到文件下载和上传到远程共享目录,特别是在涉及到支付文件时,需要确保...
### Java操作Windows共享目录的方法介绍 #### 一、SMB协议概述 SMB(Server Message Block)协议,也称为CIFS(Common Internet File System),是一种客户端/服务器类型的网络协议,主要用于提供共享访问文件、...
总之,“Java访问共享文件”这个主题涵盖了网络编程、文件I/O、安全策略等多个方面,理解并熟练运用jcifs库或其他SMB库是Java开发者在处理跨网络文件操作时的必备技能。通过深入学习和实践,可以有效地管理和维护...
Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message Block)客户端,使得Java程序能够方便地操作Windows网络共享文件。在本文中,我们将深入探讨如何使用jcifs库中的...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
"smbj.jar"是一个专门用于处理SMB(Server Message Block)协议的Java库,它允许Java应用程序无缝地访问Windows网络共享资源。本文将深入探讨如何使用smbj.jar以及其解决SMB2/SMB3协议问题的关键点。 首先,让我们...
封装性:工具类封装了NFS相关的复杂连接、认证和I/O操作细节,使得业务层代码无需关心底层通信协议,只需通过简单API即可操作远程文件。 可配置性:允许灵活配置NFS服务器地址、挂载点以及其他相关参数,使工具类...
JCIFS(Java Community Internet File System)是一个完全用Java编写的开源框架,它实现了SMB(Server Message Block)协议,使得Java应用程序能够如同访问本地文件系统一样,方便地读写Windows或Linux上的共享...
然而,Java标准库并未直接支持SMB协议,需要依赖第三方库,如jcifs(Java CIFS Client)或jcifs-ng,它们提供了SMB接口以访问共享文件。 3. **jcifs库的使用**:jcifs库(或jcifs-ng)允许Java程序以SMB协议连接到...
**rdp4j:Java远程目录轮询器详解** rdp4j是一个专门为Java开发者设计的工具,用于实现远程目录的轮询功能。这个库使得Java应用能够定期检查远程服务器上的目录变化,例如监视新文件的添加、删除或修改,这对于文件...
2. **建立连接**:然后,你可以通过SmbFile构造函数创建一个指向Samba服务器共享目录的SmbFile对象。URL格式通常为`smb://[username[:password]@]server/share[路径]`。 ```java SmbFile smbFile = new SmbFile(...
标题“使用j-Interop查询共享目录”涉及到的是Java编程中如何通过j-Interop库来访问Windows Management Instrumentation (WMI)服务,以便查询和管理Windows系统中的共享目录。这是一个跨平台编程的示例,其中Java...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...
Java 语言可以通过 SMB(Server Message Block)协议来读取远程文件,SMB 是一个标准的网络协议,允许不同的操作系统之间进行文件共享和打印机共享。在 Java 中,我们可以使用 jcifs 库来实现 SMB 读取远程文件的...
Radius客户端在IT行业中主要...总结来说,这个Java版本的Radius客户端是一个强大的工具,它不仅提供了认证服务,还具备监控Radius服务器的功能。对于需要在Java应用中集成Radius功能的开发者来说,这是一个宝贵的资源。
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...