Ftp获取不到文件流-ftpClient.retrieveFileStream获取结果为null

在与金税系统的FTP交互中,遇到获取文件流为null的问题。原因是FTP协议规定文件名编码为iso-8859-1,而中文文件名需要转码。通过在获取文件流时进行转码,成功解决该问题。

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

    近期做了一个财务方面的系统(以下称“进销存”),里面有一个模块是销项发票,客户要求与金税开票系统(以下称”金税”)做接口。在网上找到了金税的接口文档。 看了接口文档后确定了使用ftp与金税交互的开发方案。

    具体方案为:进销存将编辑好的发票信息按照要求生成xml文件上传至ftp服务器固定目录下,开票人员将ftp服务器固定目录下的xml导入至金税。金税设置将开票的返回结果生成.TXT文件放置到ftp服务器固定目录下。进销存开启一个定时器,读取金税的开票结果。

    问题就出现在进销存读取金税的开票结果上。

    进销存生成的发票信息为yyyymmddxxyyy.xml,即年月日流水号的xml,金税读取xml后返回的开票结果为yyyymmddxxyyy_开票结果.TXT。文件名称中有中文字符。

  进销存读取开票结果的思路为,获取所有开票结果文件,并将文件名中的年月流水号取出来,作为修改进销存开票信息的依据。然后读取.TXT中的内容,获取开票信息,如是否开票成功,发票号,开票日期等。

 /**
     * 获取FTPClient对象
     * @param ftpHost FTP主机服务器
     * @param ftpPassword FTP 登录密码
     * @param ftpUserName FTP登录用户名
     * @param ftpPort FTP端口 默认为21
     * @param charsetName
     * @return
     */
    public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword, String charsetName) {
        FTPClient ftpClient = null;
        try {
            ftpClient = new FTPClient();
            if(!ftpClient.isConnected()){
&nbs

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值