Java 对远程文件的操作
首先添加jar
<dependency>
<groupId>jcifs</groupId>
<artifactId>jcifs</artifactId>
<version>1.3.17</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
第一个肯定是要的,第二个最好也配置下。
下面来看代码,和一些方法示例
conStr = "smb://"+account+":"+password+"@"+remoteHostIp+"/"+shareDocName+"/"+remoteFileName;
public InputStream getFile(String path) throws IOException {
SmbFile smbFile = new SmbFile(fileRoot+path);
return smbFile.getInputStream();
}
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();
}
// @Async
public static List<AttachmentPO> getAttachmentFiles(String remoteDirectory)
{
List<AttachmentPO> attachmentPOs = new ArrayList<AttachmentPO>();
try {
SmbFile file = new SmbFile(fileRoot + remoteDirectory);
String[] files = file.list();
for(String name : files){
AttachmentPO AttachmentPO = new AttachmentPO();
AttachmentPO.setName(name);
AttachmentPO.setFile_path(remoteDirectory + name);
AttachmentPO.setRef_type(WikiConsts.ATTACHMENT_TYPE_DOWNLOAD);
attachmentPOs.add(AttachmentPO);
}
} catch (MalformedURLException e) {
logger.error("get SmbFile by directory return wrong, the remoteDirectory is" + remoteDirectory);
} catch (SmbException e) {
logger.error("get SmbFiles under directory return wrong, the remoteDirectory is" + remoteDirectory);
}
return attachmentPOs;
}
上面最重要的就是要把路径那些设置对,其它的都很简单,根据包的方法操作就行。
这边的远程文件是放在window系统中的,且是设置好的。我们通过smb://account:password @ 这样来操作。
Java 对远程文件的操作的更多相关文章
- 更新java对xml文件的操作
//更新java在xml文件中操作的内容 public static void upda(Document doc) throws Exception{ //创建一个TransformerFactor ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
- java下载远程文件到本地
java下载远程文件到本地(转载:http://www.cnblogs.com/qqzy168/archive/2013/02/28/2936698.html) /** * 下载远程文 ...
- java对xml文件的操作
xml文件格式(示例): <?xml version="1.0" encoding="UTF-8"?> <root> <Funct ...
- java常用的文件读写操作
现在算算已经做java开发两年了,回过头想想还真是挺不容易的,java的东西是比较复杂但是如果基础功扎实的话能力的提升就很快,这次特别整理了点有关文件操作的常用代码和大家分享 1.文件的读取(普通方式 ...
- Java对Jar文件的操作[转]
原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html String dirPath = System.get ...
- Java进阶(二)文件读操作
本文以实际的读取文件为例子,介绍流的概念,以及输入流的基本使用. 按照前面介绍的知识,将文件中的数据读入程序,是将程序外部的数据传入程序中,应该使用输入流--InputStream或Reader.而由 ...
- java对json文件的操作
第一步:通过FileReader读取json文件第二步:使用BufferReader,先通过I/O读取一定大小的数据缓存到数组中,然后再从数组取出数据.第三步:用一个字符串把每次传来的数据处理后写到新 ...
- JAVA对Excel文件进行操作
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
随机推荐
- JS --- 本地保存localStorage、sessionStorage用法总结
JS的本地保存localStorage.sessionStorage用法总结 localStorage.sessionStorage是Html5的特性,IE7以下浏览器不支持 为什么要掌握localS ...
- HTML5开发之meta标签的viewport使用说明
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而每一款手机有不同的分辨率,不同屏幕大 ...
- Python——Flask框架——模板
一.渲染模板 render_template 函数把Jinja2模板引擎集成到程序中 二.Jinja2变量过滤器 过滤器名 说明 safe 渲染值是不转义 capitalize 把值得首字母转换成大写 ...
- Using MongoDB with Web API and ASP.NET Core
MongoDB is a NoSQL document-oriented database that allows you to define JSON based documents which a ...
- poj-1386(欧拉回路)
题意:给你n个单词,每个单词可以和另一个单词连接,前提是(这个单词的尾字母等下一个单词的首字母),问你有没有一种连法能够连接所有的单词: 解题思路:每个单词可以看成是首字母指向尾字母的一条边,那么就变 ...
- redis知识汇总
redis是一个内存数据库,使用key-value形式在内存中管理数据. 一.redis使用场景 1.热数据存储.对于需要频繁读写的数据,可以放到redis中,不用频繁的请求数据库.再设置策略持久化到 ...
- Centos使用虚拟环境创建python django工程
本地环境 通常我们登录就是后就是本地环境 本地环境下查看pip安装了那些包 pip3 list 可以看到本地环境下我们安装的是django1.11.16版本,现在我有个项目要使用django 2.0以 ...
- E - Just a Hook HDU - 1698 线段树区间修改区间和模版题
题意 给出一段初始化全为1的区间 后面可以一段一段更改成 1 或 2 或3 问最后整段区间的和是多少 思路:标准线段树区间和模版题 #include<cstdio> #include& ...
- Cash Machine POJ - 1276 多重背包二进制优化
题意:多重背包模型 n种物品 每个m个 问背包容量下最多拿多少 这里要用二进制优化不然会超时 #include<iostream> #include<cstdio> #in ...
- BZOJ5210 最大连通子块和 【树链剖分】【堆】【动态DP】
题目分析: 解决了上次提到的<切树游戏>后,这道题就是一道模板题. 注意我们需要用堆维护子重链的最大值.这样不会使得复杂度变坏,因为每个重链我们只考虑一个点. 时间复杂度$O(nlog^2 ...