问题描述
想要实现一个实时系统,while(true){中间是从ftp服务器上面下载文件}现在碰到一个问题:有时候服务器上面没有文件就不会有data传输导致时间超过设置时间后无法读取文件但是使用:ftp.isConnect() 和ftp.isAvailable()去判断都是true但是ftp.retrieveFile(remoteFilePath+lists[i].getName(), fos);的时候就报错,请问如何判断ftp已经失效?或者说怎么样才能重新连接下载?
解决方案
ftp.isRemoteVerificationEnabled()用这个方法试一下吧但是隐约记得问题不是出在这里,ftp这时仍是连着的,ftp.retrieveFile 方法在上传多个文件时就会出这个问题,可能要换个方法
解决方案二:
个人感觉还是用sun的不要用apache;以下是我用apache的的代码ftpClient_oa.enterLocalPassiveMode();ftpClient_oa.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient_oa.setBufferSize(65535);inputStream=ftpClient_oa.retrieveFileStream(new String(fileName.getBytes("gb2312"),"iso-8859-1"));不过我还来还是改成sun的 ;不知道对你有没有帮助 ;
时间: 2024-08-01 14:59:49