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