您的位置:首页 > 编程语言 > Java开发

ftp 实现文件的上传下载以及列出文件列表Java代码(未测试)

2016-07-22 01:59 1006 查看
public class FtpUtil {
private  Log log = LogFactory.getLog(getClass()) ;

private String userName; 
private String password;
private String ip; 
private int port; 

private FTPClient ftpClient = null; 
private FTPSClient ftps = null ;

//构造方法初始化类
public FtpUtil(String userName, String password, String ip, int port) {
this.userName = userName;
this.password = password;
this.ip = ip;
this.port = port;
}
        //连接ftp
public boolean connectServer() throws Exception{
boolean flag = true;
if (ftpClient == null) { 
ftpClient = new FTPClient();
ftpClient.connect(ip,port);

log.info("Connected to " + ip);
log.info(ftpClient.getReplyString());

int reply = ftpClient.getReplyCode(); 
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
log.warn("FTP server refused connection.");
return false ;
}

boolean bok = ftpClient.login(userName, password);
if (!bok)  {
try {
ftpClient.disconnect() ;
ftpClient = null ;
} catch (Exception e) { }
throw new Exception("can not login ftp server") ;
}

ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK"); 
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
ftpClient.setDataTimeout(120000); 
ftpClient.enterLocalPassiveMode();
ftpClient.setUseEPSVwithIPv4(false);
} 
return flag;
}
        //列出所有文件内容
public List<String> listRemoteAllFiles(String path) throws Exception {
ftpClient.enterLocalPassiveMode(); 
FTPFile[] files = ftpClient.listFiles(path, new FTPFileFilter() { 
@Override
public boolean accept(FTPFile file) { 
if (file.isFile()) return true ;
return false ;
}}) ;

List<String> list = new ArrayList() ;
for (FTPFile file : files) {
list.add(file.getName()) ;
}
return list ;
}

public void closeConnect() { 
try {
if (ftpClient != null) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (Exception e) {
}

}
        //下载文件
public boolean downloadFile(String remotePath, String fileName, String localPath) throws Exception {

FileOutputStream fos = null ; 
try {
File localFile = new File(localPath, fileName);
fos = new FileOutputStream(localFile);

ftpClient.enterLocalPassiveMode(); 
ftpClient.changeWorkingDirectory(remotePath) ;
boolean bok = ftpClient.retrieveFile(fileName, fos);

fos.close() ;
fos = null ;

return bok ;
} catch (Exception e) {
throw e ;
}
finally {
if (fos!=null) {
try {
fos.close() ;
fos = null ;
} catch (Exception e2) { }
}
} 

}
        //上传文件
public boolean uploadFile(String remotePath, String filename, String localFilePath) throws Exception {
FileInputStream fis = null ;
try {
fis = new FileInputStream(new File(localFilePath));

ftpClient.enterLocalPassiveMode(); 
ftpClient.changeWorkingDirectory(remotePath);
boolean bok = ftpClient.storeFile(filename, fis); 

fis.close();
fis = null ;

return bok ;
} catch (Exception e) {
throw e ;
}
finally {
if (fis!=null) {
try {
fis.close() ;
fis = null ;
} catch (Exception e2) { }
}
}

}
//删除文件
public boolean removeFile(String remotePath, String filename) throws Exception {
ftpClient.changeWorkingDirectory(remotePath);
boolean bok = ftpClient.deleteFile(filename) ; 
return bok ;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: