org.apache.commons.net.ftp下的FTPClient类缓冲区大小设置无效

在使用org.apache.commons.net.ftp.FTPClient读取文件时遇到卡住问题,排查后确定不是IO流问题而是FTPClient的缓冲区大小设置无效。分析源码发现Util类中的DEFAULT_COPY_BUFFER_SIZE值固定,导致无法修改FTPClient的缓冲区大小。因此选择自定义实现来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    工具中使用到了


org.apache.commons.net.ftp下的FTPClient这个类,然后读取文件,进行解析。发现读取到355行就卡住不动了。

    分析发现,直接使用io流读取没有任何问题,大文件也可以读取,所以问题锁定FTPClient的文件流读取有问题。首先将文件的每行减少字符串长度,发现,读取的行数变多,所以定位为缓冲区大小的问题。然后找到FTPClient源码,如下:

   

 public FTPClient()
    {
        __initDefaults();
        __dataTimeout = -1;
        __remoteVerificationEnabled = true;
        __parserFactory = new DefaultFTPFileEntryParserFactory();
        __configuration      = null;
    }


    private void __initDefaults()
    {
        __dataConnectionMode = ACTIVE_LOCAL_DATA_CONNECTION_MODE;
        __passiveHost        = null;
        __pas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水上冰石

希望能帮助到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值