java上传、下载、删除ftp文件(一)

2014-11-24 07:53:39 · 作者: · 浏览: 1

一共三个类,一个工具类Ftputil.,一个实体类Kmconfig。一个测试类Test

Ftputil类---------------

package ftpDemo;

import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;



public class ftpUtil {
	// 上传文件至FTP通用方法
	public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

		try {
			String ftpHost = kmConfig.getFtpHost();
			int port = kmConfig.getFtpPort();
			String userName = kmConfig.getFtpUser();
			String passWord = kmConfig.getFtpPassword();
			String path = kmConfig.getFtpPath();
			

			FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
			ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
			ftpClient.binary();
			ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

			TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名
			DataOutputStream dataOut = new DataOutputStream(telnetOut);
			byte buffer[] = new byte[1024 * 1024];
			int count = 0;
			while ((count = is.read(buffer)) != -1) {
				dataOut.write(buffer, 0, count);
			}
			telnetOut.close();
			dataOut.close();
			ftpClient.closeServer();
		} catch (Exception e) {
			System.out.println(上传文件失败!请检查系统FTP设置,并确认FTP服务启动);
		}
	}

	// 删除文件至FTP通用方法
	public static void deleteFileFtp(KmConfig kmConfig,String fileName){
		try {
			String ftpHost = kmConfig.getFtpHost();
			int port = kmConfig.getFtpPort();
			String userName = kmConfig.getFtpUser();
			String passWord = kmConfig.getFtpPassword();
			String path = kmConfig.getFtpPath();

			FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
			ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
			ftpClient.binary();
			ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
			try {
				ftpClient.sendServer(dele  + fileName + 
);
			} catch (Exception e) {
				System.out.println(删除文件失败!请检查系统FTP设置,并确认FTP服务启动);
			}
			ftpClient.closeServer();
		} catch (Exception e) {
			System.out.println(删除文件失败!);
		}
	}

	// 下载ftp文件
	public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
		try {
			String ftpHost = kmConfig.getFtpHost();
			int port = kmConfig.getFtpPort();
			String userName = kmConfig.getFtpUser();
			String passWord = kmConfig.getFtpPassword();
			String path = kmConfig.getFtpPath();

			FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
			ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
			ftpClient.binary();
			ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
			try {
				TelnetInputStream in = ftpClient.get(fileName);
				byte[] bytes = new byte[1024];
				int cnt=0;
				while ((cnt=in.read(bytes,0,bytes.length)) != -1) {
					outputStream.write(bytes, 0, cnt);
				}
				outputStream.close();
				in.close();
			} catch (Exception e) {
				ftpClient.closeServer();
				e.printStackTrace();
			}
			ftpClient.closeServer();
		} catch (Exc