Android FTP断点续传 ftpClient.appendFileStream()方法返回输出流为空


在Android FTP中实现的断点续传,但是续传一直失败,报错如下

java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.OutputStream.write(byte[], int, int)' on a null object reference

 

出问题是因为调用  ftpClient.appendFileStream 返回流为 null导致的。

    //out 可能打开为null
    OutputStream out = ftpClient.appendFileStream(remotePath);

 

可能是上传异常中断后,FTP服务器还不知道连接已断开,还一直占用文件,客户端马上重连去续传这个文件就会打开流失败。

 

当前的处理是,获取到流为null的时候直接删除FTP服务器上的这个文件,然后重新上传。

    public void deleteFailedSession(String nullRemoteFile) {

        if(!nullRemoteFile.isEmpty()) {
            try {
                ftpClient.deleteFile(nullRemoteFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM