用java访问共享文件系统

用java访问共享文件系统

ID:6609383

大小:25.00 KB

页数:3页

时间:2018-01-20

用java访问共享文件系统_第1页
用java访问共享文件系统_第2页
用java访问共享文件系统_第3页
资源描述:

《用java访问共享文件系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用JAVA访问共享文件系统作者薛谷雨  前言  在Microsoft网络系统中,SMB(ServerMessageBlock,服务信息块)协议是WindowsforWorkgroup(WfWg)、Windows95、WindowsNT和LanManager用来实现共享局域网上文件和打印机的协议。对于利用Linux和WindowsNT构建的局域网来说,Samba就是为Linux提供的SMB客户程序/服务器程序的软件包,其功能是实现Windows和Linux互相共享对方的磁盘空间和打印机。通用网络文件系统简称CIFS,它事实上是windows平台文件共享的

2、标准协议,它是windowsexplorer,网络邻居和映射网络驱动器的底层实现协议。JAVA具有天然的平台无关性,使用JAVA可以访问任何类型的服务器或客户机上的共享文件系统,并且编写的软件产品可以运行于任何平台,因此用JAVA访问共享文件系统在企业应用中具有得天独厚的优势。  JAVA中的CIFS实现  Jcifs是CIFS在JAVA中的一个实现,是samba组织本着linux的精神,负责维护开发的一个开源项目。这个项目专注于使用java语言对cifs协议的设计和实现。他们将jcifs设计成为一个完整的,丰富的,具有可扩展能力且线程安全的客户端库。

3、这一库可以应用于各种java虚拟机访问遵循CIFS/SMB网络传输协议的网络资源。类似于java.io.File的接口形式,在多线程的工作方式下被证明是有效而容易使用的。目前jcifs的最新版本是jcifs-0.8.0b,你可以在本文最后列出的参考资料中获得下载这一类库的网址,这一版本还支持分布式的文件系统,本文尚不涉及这一内容。  JAVA/CIFS程序设计  如果你曾经使用过java的文件操作功能,那么你将很容易掌握jcifs的开发方法。Jcifs通过类似如下的资源url定位一个资源:  smb://guest:1234@192.168.3.56/

4、share/a.txt  这个url的开始部分smb://说明了这是一个smb类型的url;接下来的guest和1234分别是访问共享资源的用户名称和密码;@后面是要访问的资源的主机名或IP地址。最后是资源的共享文件夹名称和共享资源名。  在JAVA程序中,使用如下方式获得一个远程共享文件的句柄:  SmbFilefile=newSmbFile("smb://guest:1234@192.168.3.56/share/a.txt");  这里的句柄不仅限于远程的共享文件,还可能是共享文件夹。isFile()方法和isDirectory()用来判断这个句

5、柄对应的资源的真实属性。如果是共享文件夹,通过调用它的list()方法将获得其中资源的列表。List方法支持过滤器机制,有两种过滤器可供使用,一种是SmbFileFilter,另一种是SmbFilenameFilter,这两个在jcifs中作为接口出现,你可以根据自己的需要派生出个性化的过滤器,实现接口中的accept方法,以满足不同业务的需求。  SmbFileInputStream是smb文件的输入流,它的功能是以流的方式打开一个SmbFile:  SmbFileInputStreamin=newSmbFileInputStream(file); 

6、 SmbFileInputStream提供read方法,你可以从这个流中读出远程文件全部的内容。  至此,你已经掌握了java访问smb文件系统的基本方法。  SmbFileOutputStream是smb文件的输入流,可以向远程文件系统通过smb写入数据,方法与上面类似,不再赘述。  本文后面附带的源代码是一个完整的例子,它完成功能很简单,就是将另一台电脑上指定共享文件夹下的某些文件拷贝到本机的指定目录下。通过这个例子,相信你很容易将它移植到你的开发产品中。  第一步,设置运行环境。将源代码解压缩,将lib目录下的名称为jcifs-0.8.0b.ja

7、r的文件加入到你的操作系统的classpath中,使示例程序运行时能够找到这个库。  第二步,在另一台计算机上建立名称为share的共享文件夹,用户名为guest,密码也为guest。假设这台计算机的ip地址是192.168.0.2。  第三步,在刚才建立的共享文件夹下放置两个文件,名称分别为hello.txt,bye.txt。文件的内容无所谓。  第三步,在本地计算机上的C盘跟目录下建立一个名称为tmp的空目录,置此目录可写。  第四步,编译运行Sample1.java,并运行:  JavaSample1192.168.3.52guestguest/

8、share/c:/tmp/  检查c:tmp文件夹,会发现hello.txt这个文件被复制到

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。