由于每次用FTP软件存取文件,感觉很麻烦特别还有虚拟桌面,就网上研究了下FTP编程,搞了这个。
public class FtpTest1 {
/**
* @param args
* @throws Exception,IOException
*/
public static void main(String[] args) throws Exception,IOException {
// TODO Auto-generated method stub
String source1 = "E:/";
String source2 = "/开通月末批开批销/彩云need.rar";
downFile(source2,source1);
}
/**
* @Function: 上传本地文件都FTP上
* @Description:
*
* @param 本地文件路径
* @return
* @throws IOException
* @throws Exception
*
* @version: v1.0.0
* @date: 2013-11-4下午10:36:16
*/
private static void upFile(String source) throws Exception,IOException{
//创建FtpClient对象
sun.net.ftp.FtpClient ftpClient = new sun.net.ftp.FtpClient("10.7.5.123",21);
ftpClient.login("ftpuser", "ftpuser");
java.io.File file = new java.io.File(source);
ftpClient.cd("/开通月末批开批销/");
ftpClient.binary();
sun.net.TelnetOutputStream telOutputStream = ftpClient.put(file.getName());
sun.net.TelnetInputStream telInputStream = new sun.net.TelnetInputStream(new java.io.FileInputStream(file),true);
byte[] buf = new byte[204800];
int bufSize = 0;
while((bufSize = telInputStream.read(buf, 0, buf.length)) != -1){
telOutputStream.write(buf, 0, bufSize);
}
telInputStream.close();
telOutputStream.close();
}
/**
* @Function: 从FTP下载文件都本地
* @Description:
*
* @param sourceFileName FTP文件地址 ;destinationPath 本地文件地址
* @return
* @throws IOException
* @throws Exception
*
* @version: v1.0.0
* @date: 2013-11-4下午10:36:16
*/
private static void downFile(String sourceFileName,String destinationPath) throws Exception,IOException{
//创建FtpClient对象
sun.net.ftp.FtpClient ftpClient = new sun.net.ftp.FtpClient("10.7.5.123",21);
ftpClient.login("ftpuser", "ftpuser");
ftpClient.binary();
String destinationFileName = destinationPath+sourceFileName.substring(sourceFileName.lastIndexOf("/")+1,sourceFileName.length());
sun.net.TelnetInputStream telInputStream = ftpClient.get(sourceFileName);
byte[] buf = new byte[204800];
int bufSize = 0;
java.io.FileOutputStream ftpout = new java.io.FileOutputStream(destinationFileName);
while((bufSize = telInputStream.read(buf, 0, buf.length)) != -1){
ftpout.write(buf, 0, bufSize);
}
ftpout.close();
telInputStream.close();
}
}
如果大家谁没有FTP文件,此程序可以用下!