当前位置: 首页 > 面试题库 >

JCIFS:文件检索太慢而无法使用

黄查猛
2023-03-14
问题内容

我只是在测试JCIFS以访问Windows共享。完全无法使用的速度非常慢。

import jcifs.smb.*;

class First {
    public static void main(String[] args) throws Exception {
    try {
        //jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.1.220" );
        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain.com", "Administrator", "password");

        SmbFile f = new SmbFile("smb://10.17.15.12/Share/xml/file.xml", auth);
        SmbFileInputStream in = new SmbFileInputStream(f);
        byte[] b = new byte[8192];
        int n;
        while(( n = in.read( b )) > 0 ) {
        System.out.write( b, 0, n );
        }
    } catch (SmbException smbe) {
        System.err.println(smbe.getNtStatus());
        System.err.println(smbe.toString());
        System.err.println(smbe.getCause());
    }
    }
}

初始输出需要很长时间,后续读取也很慢。任何想法如何使用它?我也可以使用任何其他可替代的方式来编写Java代码来以可移植的方式访问Windows共享。


问题答案:

我在某处发现SmbFileInputStream不会自己进行缓冲,因此很慢。将SmbFileInputStream包裹在BufferedInputStream中解决了此问题。

 SmbFile sFile = new SmbFile(path, authentication);

 BufferedInputStream buf = new BufferedInputStream(new SmbFileInputStream(sFile));


 类似资料:
  • 我目前正在创建一个基于此小提琴的动态下拉列表 除了我试图调用JSON文件之外,我一直在跟进。我的代码如下: ]; 范围metro可以工作,但是当连接到JSON文件时,其余的就不能工作了。我假设它会工作,因为它实际上是相同的结构。我做错了什么? [编辑] 正如你们中的一些人所回答的那样,在我进行上述操作之前,我最初尝试了这种http注入: 这不起作用,所以我试了另一种方法。所以我假设它与JSON赋值

  • null 我这样做的方法是创建太多的行,而且看起来不是可伸缩的。例如,如果一个页面创建了一个post&有1,000,000个followers,那么我们就在feedpost表中创建了1,000,000个新行。 请救命!像facebook这样的公司是如何处理这个问题的呢?他们会根据请求生成提要吗?我的数据库关系很糟糕吗?

  • 我想知道如何使用JCIFS在SMB共享中将文件从一个文件夹移动到另一个文件夹。 首先,没有任何方法。 然后,这种方法: 引发异常,

  • 脚本: 超文本标记语言: 我试图获取的文本与帐单地址相同。我也尝试过使用getText(),但没有返回任何结果。

  • 自从我安装了android studio,它从来没有Eclipse快。每当我开始调试时,在设备上开始调试和运行应用程序通常需要1-2分钟。 问题:我想知道如何解决这个问题(安装windows 64位或安装其他类型的android studion或...) 我的系统配置如下所示: 配备Core i5 cpu的笔记本电脑, Windows 8.1 32位 3GB可用RAM Android Studio