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. KMP算法的理解

    ---恢复内容开始--- 在看数据结构的串的讲解的时候,讲到了KMP算法——一个经典的字符串匹配的算法,具体背景自行百度之,是一个很牛的图灵奖得主和他的学生提出的. 一开始看算法的时候很困惑,但是算法 ...

  2. C# 刷票程序

    上个月有人让我帮忙投票,我想要不写个程序给他多刷点得了,虽然这事情有悖原则,就当娱乐了.. 先上图 1.分析 既然是网页投票,那肯定可以伪造HTTP请求来实现刷票.需要分析的就是该网站到底采用了哪些防 ...

  3. ActiveMQ之Topic

    与Queue不同,Topic实现的是发布/订阅模型,在下面的例子中,启动两个消费者共同监听一个Topic,然后循环给这个Topic发送多个消息. 例子: public class TopicTest ...

  4. STM32普通定时器实现延时函数

    /* SystemFrequency / 1000 1ms中断一次 * SystemFrequency / 100000 10us中断一次 * SystemFrequency / 1000000 1u ...

  5. 【jquery】javaScript中prototype的妙用 巧妙运用prototype属性原型链创建对象

    prototype  可以有好多有优化实现方法 http://blog.csdn.net/liuqiwen0512/article/details/8089690 在 JavaScript 中,每个函 ...

  6. input 标签的监听事件总结

    最近在写一个手机端提交表单的项目,里面用了不少input标签,因为项目不太忙,所以,想做的完美点,但是遇到了一些问题,比如:页面中的必填项如果有至少一项为空,提交按钮就是不能提交的状态,所以需要对所有 ...

  7. left join 过滤条件写在on后面和写在where 后面的区别

    create table t1(id int, feild int);insert into t1 values(1 , 1);insert into t1 values(1 , 2);insert ...

  8. Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目

    这是用新电脑第一次创建Maven项目--当然是一个测试项目.已经差不多忘了该怎样做,所以参考我的博客:http://www.cnblogs.com/wql025/p/4996486.html,这应该是 ...

  9. 给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。

    // ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "stdafx.h ...

  10. Introduction to Deep Neural Networks

    Introduction to Deep Neural Networks Neural networks are a set of algorithms, modeled loosely after ...