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();
            }
        }
    }

 

posted @ 2020-01-07 16:19  九月彭于晏  阅读(1921)  评论(1编辑  收藏  举报