FTP传输和下载文件

public class FTPUtils {

	FTPClient ftp;

	/**
	 * 登陆FTP
	 * 
	 * @param user 登陆用户名
	 * @param password 登录密码
	 * @throws Exception
	 */
	public void init(String IP,String user, String password) throws Exception { // 初始化函数
		try {
			
			ftp = new FTPClient(IP); //建立连接
			
			ftp.login(user, password); //登录
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 从FTP服务器上获取文件信息,包含登陆FTP流程
	 * 
	 * @param ipAddress FTP服务器的ip地址
	 * @param user 登陆用户名
	 * @param password 登录密码
	 * @return sourceFile 要获取的文件(含路径+文件名),例如/home/viewuser/nohup.out
	 * @throws Exception
	 */
	public String doFtpConnect(String ipAddress, String user, String password,
			String sourceFile) {

		ByteArrayOutputStream streamXML = null;
		String strSendMsg = "";

		try {
			FTPClient ftp = new FTPClient(ipAddress); //建立连接

			streamXML = new ByteArrayOutputStream();

			ftp.login(user, password); //登录

			//ftp.get("D:/zy/"+fileName,"/home/viewuser/nohup.out");     //生成下载文件
			ftp.get(streamXML, sourceFile); //生成输出流

			strSendMsg = streamXML.toString();

		} catch (Exception e) {
			e.printStackTrace();
		}

		return strSendMsg;

	}

	/**
	 * 从FTP服务器上获取文件信息,不包含登陆FTP流程。
	 * 
	 * @param user 登陆用户名
	 * @param password 登录密码
	 * @return sourceFile 要获取的文件(含路径+文件名),例如/home/viewuser/nohup.out
	 * @throws Exception
	 */
	public String doFtpConnect(String sourceFile) {

		ByteArrayOutputStream streamXML = null;
		String strSendMsg = "";

		try {
			streamXML = new ByteArrayOutputStream();

			//ftp.get("D:/zy/"+fileName,"/home/viewuser/nohup.out");     //生成下载文件
			ftp.get(streamXML, sourceFile); //生成输出流

			strSendMsg = streamXML.toString();

		} catch (Exception e) {
			e.printStackTrace();
		}

		return strSendMsg;

	}
	
	/**
	 * 向FTP服务器传送fileName文件
	 * 
	 * @param localPath 本地文件路径
	 * @param ftpPath FTP服务器文件路径
	 * @param fileName 文件名称
	 * @return content 服务器fileName文件及其路径
	 * @throws Exception
	 */
	public String putFtpFile(String localPath,String ftpPath,String fileName){
		String content = "";
		localPath = localPath+fileName;
		ftpPath = ftpPath+fileName;
		System.out.println("FTPUtils: localPath==="+localPath);
		System.out.println("FTPUtils: ftpPath==="+ftpPath);
		try {
			content = ftp.put(localPath,ftpPath);
		}catch (Exception e){
			e.printStackTrace();
		}
		
		return content;
	}
	
	/**
	 * 向FTP服务器传送字符串,生成fileName文件
	 * 
	 * @param sendMsg 向服务器发送信息
	 * @param ftpfile FTP服务器文件路径
	 * @param fileName 文件名称
	 * @return content 服务器fileName文件及其路径
	 * @throws Exception
	 */
	public String putFtpMsg(String sendMsg,String ftpPath,String fileName){
		String content = "";
		ftpPath = ftpPath + fileName;
		System.out.println("FTPUtils: ftpPath==="+ftpPath);
		InputStream input = new StringBufferInputStream(sendMsg); 
		
		try {
			content = ftp.put(input,ftpPath);
		}catch (Exception e){
			e.printStackTrace();
		}
		
		return content;
	}

}
 

你可能感兴趣的:(java,ftp,远程上传下载)