JCIFS读取远程服务器文件过慢的解决方法

发表于3年前(2013-07-12 11:23)   阅读(1174) | 评论(0

// 我要收藏";
var favor_del = "取消收藏";
var favor_ok = "

已成功添加到收藏夹

我的收藏夹 | 关闭

";
function delete_favor(obi_id, obj_type){
$('#attention_it').html(favor_add);
$("#p_attention_count").load("/action/favorite/cancel?type="+obj_type+"&id="+obi_id, {user: ''});
}
function add_to_favor(obj_id, obj_type){
if(confirm('必须登录后才能收藏,是否现在登录?')){
location.href="http://www.oschina.net/home/login?goto_page="+encodeURIComponent(location.href);
}
}
function close_favor(elem_id){
$('#favor_trigger').poshytip('destroy');
}
function setTag(tv){
var t = $("._favor_input");
var value = t.val();
var tags = value.replace(/,/ig,',').split(',');
var exist = false;
value = $.map(tags,function(v,i){
if($.trim(tv) == $.trim(v)){
exist = true;
return undefined;
}
return v;
}).join(',');
if(exist){
t.val(value);
return;
}
if(value!="")
t.val(value+","+tv);
else
t.val(tv)
}
function ltrim(str){
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(0)) != -1){
var j=0, i = s.length;
while (j = 0 && whitespace.indexOf(s.charAt(i)) != -1){
i--;
}
s = s.substring(0, i+1);
}
return s;
}

function trim(str){
return rtrim(ltrim(str));
}
// ]]>
0人收藏此文章,
//
我要收藏
//

0

与windows explorer打开相同的文件相比,JCIFS默认情况下要慢太多了。我找了大半天,总算找出了解决方法,增加如下配置,则读取速度会有质的飞跃,我这边从7s提升至0.2s:

1
System.setProperty("jcifs.smb.client.dfs.disabled", "true");

至于原因嘛,我也不知道,我是从此网站捞到的一条配置:

http://samba.2283325.n4.nabble.com/Peformance-questions-td4644647.html

执行程序代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private static final int BUFFER_SIZE = 1024;
 public static void main(String[]args) throws Exception {
    //SmbFile file = new SmbFile("smb://finchina;daieel:123456@192.168.100.246/Soft/sc8 key.txt");     //SmbFile file = new SmbFile("smb://10.15.97.181/xx部资料库/工作文档/查询逻辑.txt");d     //http://samba.2283325.n4.nabble.com/Peformance-questions-td4644647.html     System.setProperty("jcifs.smb.client.dfs.disabled", "true");
         
    long startTime = System.currentTimeMillis();
    UniAddress dc = UniAddress.getByName("192.168.100.5");  
    NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication("fgina", "xiajl", "orange");  
    SmbSession.logon(dc, authentication);  
    SmbFile file = new SmbFile("smb://192.168.100.5/edse/users.txt",  authentication);  
      
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    BufferedInputStream in = new BufferedInputStream(new SmbFileInputStream(file));
    //SmbFileInputStream in = new SmbFileInputStream(file) ;  //建立smb文件输入流     byte buffer[] = new byte[BUFFER_SIZE] ;
    int count = -1
    while((count = in.read(buffer,0,BUFFER_SIZE)) != -1) {
        out.write(buffer, 0, count);
    }
    String content = new String(out.toByteArray(),"GBK");
    in.close();
    System.out.println(System.currentTimeMillis() - startTime);
      
    System.out.println(content);
}

JCIFS读取远程服务器文件过慢的解决方法的更多相关文章

  1. 在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件

    在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件 开源程序 浏览:29555 2013年05月02日 文章目录[隐藏] 常见的工作流程 SFTP 安装和使用方法 第一步: ...

  2. java使用sftp下载远程服务器文件

    使用的是springboot的项目,只是贴出主要配置与类,代码较长,可以先折叠: 参考:https://www.cnblogs.com/xyzq/p/7049369.html 操作工具类SftpUti ...

  3. 本地VSCode编辑远程服务器文件

    前言 先说下我的场景:服务器搭设了一系列复杂环境,然后需要使用PHP实现某些功能 选这种远程编辑的原因: 首先PHP打死我也不想装(这个现在是出了VB外最惹人厌的语言了) 然后环境比较复杂,本地装下比 ...

  4. #在windows上使用ngix重定向目录访问远程服务器文件详细实例

    为了在开发环境保持于生产环境相同的访问远程服务器文件资源的目录配置,需要在开发环境(windows)在远程文件服务器使用nignx重定向文件目录,因为网上的资料大都是copy的,解释比较笼统,也没有具 ...

  5. IIS6.0服务器搭建网站无法访问解决方法

    IIS6.0服务器搭建网站无法访问解决方法     IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...

  6. Log4Net 生成多个文件、文件名累加解决方法

    Log4Net 生成多个文件.文件名累加解决方法 项目中的WCF服务里采用Log4Net用来记录异常日志,但部署后,生成的日志会出现多个累加文件,如下图: WCF是寄宿在IIS上,包含了5个SVC服务 ...

  7. EXCEL词典(xllex.dll)文件丢失或损坏解决方法

    EXCEL词典(xllex.dll)文件丢失或损坏解决方法     1● 问题   2● 解决 fail 3● 方法2   regsvr32 xllex.dll     4● 方法3 启动server ...

  8. webstorm无法显示左边文件夹目录的解决方法

    webstorm无法显示左边文件夹目录的解决方法 方法一 view-->Tool Windows-->Project 就可以显示或者关闭 方法二 1.删除webstorm的配置文件夹 2. ...

  9. svn新建文件不能提交的解决方法

    svn新建文件不能提交的解决方法 在当前新建文件的目录下,右键空白处: 选择Properties 找到所有有ignore字眼的属性,查看这个属性的继承目录(inherited from),入我的是cl ...

随机推荐

  1. Python中Cookie的处理(一)Cookie库

    Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理.要在用户浏览器上安装cookie,HTTP服务器向HTTP响应添加类似以下内容的HTTP报头: Set-Cookie:session= ...

  2. linux c 实现大数相乘

      #include <stdio.h> #include <string.h> #include <math.h> #include <stdbool.h& ...

  3. MonoBehaviour

    所有的Unity脚本都继承自MonoBehaviour这个类,它没有Main函数入口,采用了事件触发的模式,根据不同的事件响应不同的函数. void Start(): void Update():每一 ...

  4. kruskal --- c++ (2)

    #include <cstdio> #include <algorithm> using namespace std; struct aaa{ int l,r,w; bool ...

  5. DVDRW光驱无法读DVD刻录盘

    原文地址:http://www.douban.com/note/206741292/ 所有的DVD RW驱动器,不能识别DVD ROM光盘问题,都是因为DVD区域没有给定造成的,除非设备损坏!在计算机 ...

  6. linux消息队列的使用

    消息队列 *消息队列是内核地址空间中的内部链表,通过内核在各个进程之间传递的内容.消息顺序发送到消息队列中,每个消息队列都有IPC标识符唯一地进行标识. msgbuf结构 struct msgbuf{ ...

  7. 学习Linux第二天

    1.Linux目录: 保存系统命令:根目录下的bin和sbin,usr下的bin和sbin /etc:保存配件 /usr:系统软件资源目录 /proc:系统内存分配目录,直接写入内存的 /var:保存 ...

  8. ELF

    http://www.360doc.com/content/11/0826/13/7588214_143424472.shtml 链接,装载都是基于数据结构ELF.

  9. 【BZOJ】【2208】【JSOI2010】连通数

    题解: 1.Tarjan缩点以后对每个连通分量进行深搜,看能到哪些连通分量,能到达的所有连通分量的size之和记为sum.则第i个连通分量对答案的贡献为size[i]*sum(到其他连通分量)+siz ...

  10. 【转载】错误 CS0016: 未能写入输出文件“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/.........dll”--“拒绝访问。 ”

    win7中安装asp.net的问题 编译器错误信息: CS0016: 未能写入输出文件问题解决办法 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地 ...