java 利用SMB读取远程文件
- package com.yss.test.FileReadWriter;
- 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 java.net.MalformedURLException;
- import jcifs.smb.SmbFile;
- import jcifs.smb.SmbFileInputStream;
- import jcifs.smb.SmbFileOutputStream;
- public class RemoteAccessData {
- /**
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- smbGet1("smb://192.168.75.204/test/新建 文本文档.txt" );
- smbGet("smb://192.168.75.204/test/新建 文本文档.txt" , "e:/" );
- }
- /**
- * 方法一:
- *
- * @param remoteUrl
- * 远程路径 smb://192.168.75.204/test/新建 文本文档.txt
- * @throws IOException
- */
- public static void smbGet1(String remoteUrl) throws IOException {
- SmbFile smbFile = new SmbFile(remoteUrl);
- int length = smbFile.getContentLength(); // 得到文件的大小
- byte buffer[] = new byte [length];
- SmbFileInputStream in = new SmbFileInputStream(smbFile);
- // 建立smb文件输入流
- while ((in.read(buffer)) != - 1 ) {
- System.out.write(buffer);
- System.out.println(buffer.length);
- }
- in.close();
- }
- // 从共享目录下载文件
- /**
- * 方法二:
- * 路径格式:smb://192.168.75.204/test/新建 文本文档.txt
- * smb://username:password@192.168.0.77/test
- * @param remoteUrl
- * 远程路径
- * @param localDir
- * 要写入的本地路径
- */
- public static void smbGet(String remoteUrl, String localDir) {
- InputStream in = null ;
- OutputStream out = null ;
- try {
- SmbFile remoteFile = new SmbFile(remoteUrl);
- if (remoteFile == null ) {
- System.out.println("共享文件不存在" );
- return ;
- }
- String fileName = remoteFile.getName();
- File localFile = new File(localDir + File.separator + fileName);
- in = new BufferedInputStream( new SmbFileInputStream(remoteFile));
- 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();
- }
- }
- }
- // 向共享目录上传文件
- 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();
- }
- }
- }
- // 远程url smb://192.168.0.77/test
- // 如果需要用户名密码就这样:
- // smb://username:password@192.168.0.77/test
- }
java 利用SMB读取远程文件的更多相关文章
- MeteoInfoLab脚本示例:读取远程文件
利用Unidata netCDF Java库对远程文件的读取能力(OpenDAP, ADDE, THREDDS等),可以读取远程文件并绘图.脚本程序: fn = 'http://monsoondata ...
- Java项目中读取properties文件,以及六种获取路径的方法
下面1-4的内容是网上收集的相关知识,总结来说,就是如下几个知识点: 最常用读取properties文件的方法 InputStream in = getClass().getResourceAsStr ...
- java 利用POI 读取Execel数据的真实行数
java 利用poi 读execel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本 ...
- java使用poi读取ppt文件和poi读取excel、word示例
java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问
\第五天-servlet开发和ServletConfig与ServletContext对象\12-WEB应用中的普通Java程序如何读取资源文件.mp4; 多层时,DAO为了得到资源文件中的配置参数: ...
- java中利用RandomAccessFile读取超大文件
超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到4 ...
- java 分次读取大文件的三种方法
1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path&qu ...
- JAVA利用poi获取world文件内容
本文主要简单介绍了利用poi包,读取world文件内容. 这个依然存在版本的问题,只能读取doc结尾的老版本文件. 话不多说,上代码: import java.io.File; import java ...
随机推荐
- Scala学习---映射和元祖
1.设置一个映射,其中包含你想要的一些装备,以及他们的价格.然后构建另一个映射,采用同一组键,但在价格上打9折. scala> val map = Map("a"->1 ...
- Ubuntu下NFS,TFTP服务搭建
环境:Ubuntu 一. 搭建NFS服务器 (1)安装: sudo apt-get install nfs-kernel-server #安装NFS服务器端 sudo apt-get instal ...
- springMVC+Java验证码完善注册功能
这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...
- IIS的虚拟目录和子应用程序
一.虚拟目录 虚拟目录是指在发布的网站下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径. 1. 虚拟目录与父级站点共用一个应用程序池,网站Test是在D盘下建立了的虚拟目 ...
- 关于IOS的Cocoapods相关问题
Cocoa Pods确实是一个方便的工具,特别是在敏捷开发多个项目的时候,一个工具重复使用,大量节约时间: 可以及时更新github上面的开源库代码,只要改动Podfile文件中对应的开源库的版本号即 ...
- Objetive-C 中的相等比较
1.== 用于比较两个对象的地址是否相同 1)需要注意的是相同的短字符串,一定大小整数(nsnumber),Objetive-C 底层会做cache,两个对象,指向同一个地址. 例如: NSStrin ...
- LeetCode OJ 41. First Missing Positive
Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0] ...
- Excel教程(9) - 信息函数
CELL 用途:返回某一引用区域的左上角单元格的格式.位置或 内容等信息,该函数主要用于保持与其它电子表格程序的兼容 性. 语法:CELL(info_type,reference) 参数:Info ...
- velocity的宏
velocity中的宏macro的使用当中,由于velocity会将宏加载到tomcat中去,但是如果修改之后再加载的话velocity发现有了相同的宏名称,则不会加载 所以这时候的问题就是,在页面上 ...
- Program Files 与Program Files (x86)
在64位系统下,为了更好的兼容32位程序,在安装一些32位程序(注意某些程序他就是32位的),会默认扔到program files(x86)这个文件夹下,而一些64位的程序,或程序本身没有位数区别的, ...