tinguo002

 

java FTP Linux系统下 文件上传下载

http://www.blogjava.net/parable-myth/archive/2008/05/16/200879.html
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;

public class DownFTPFile {

private String hostname; 
private String username;
private String password;
private String localBaseDir; 
private String remoteBaseDir; 


private static FTPClient ftpClient = new FTPClient(); 

public static void main(String[] args) {
String hostname 
= "172.18.72.66";
String username 
= "sfdc3";
String password 
= "sfdcadmin";
String localBaseDir 
= "c:/temp/";
String remoteBaseDir 
= "ptsinstall/v3.20.06";

DownFTPFile downFTPClient 
= new DownFTPFile();
downFTPClient.setHostname(hostname);
downFTPClient.setUsername(username);
downFTPClient.setPassword(password);
downFTPClient.setLocalBaseDir(localBaseDir);
downFTPClient.setRemoteBaseDir(remoteBaseDir);
downFTPClient.startDown();
}


private void startDown() {
try {
ftpClient.connect(hostname);
ftpClient.login(username, password);
FTPClientConfig conf 
= new FTPClientConfig( FTPClientConfig.SYST_UNIX);
ftpClient.configure(conf);
}
 catch (Exception e1) {
e1.printStackTrace();
}


try {
FTPFile[] files 
= null;
boolean changedir = ftpClient.changeWorkingDirectory(remoteBaseDir);
if ( changedir ){
files 
= ftpClient.listFiles();
for (int i = 0; i < files.length; i++{
downloadFile(files[i], localBaseDir, remoteBaseDir);

/**

下载单个文件文件
InputStream is = ftpClient.retrieveFileStream(remoteBaseDir);
   BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf8"));

   String str="";
   try {
    while((str=br.readLine())!=null){
     System.out.println(str);
    }
   } catch (Exception e) {       
    e.printStackTrace();
   }
*/
}
}

}
 catch (Exception e) {
System.out.println(e);
}

}


private void downloadFile(FTPFile ftpFile, String relativeLocalPath,String relativeRemotePath) {
if (ftpFile.isFile()) {//down file
if (ftpFile.getName().indexOf("?"== -1{
OutputStream outputStream 
= null;
try {
outputStream 
= new FileOutputStream(relativeLocalPath+ ftpFile.getName());
ftpClient.retrieveFile(ftpFile.getName(), outputStream);
outputStream.flush();
outputStream.close();
}
 catch (Exception e) {
System.err.println( e );
}
 finally {
try {
if (outputStream != null)
outputStream.close();
}
 catch (IOException e) {
System.out.println(
"ShowasaFile");
}

}

}

}
 else //deal dirctory
String newlocalRelatePath = relativeLocalPath + ftpFile.getName();
String newRemote 
= new String(relativeRemotePath+ ftpFile.getName().toString());

File fl 
= new File(newlocalRelatePath);
if (!fl.exists()) {
fl.mkdirs();
}

try {
newlocalRelatePath 
= newlocalRelatePath + '/';
newRemote 
= newRemote + "/";
String currentWorkDir 
= ftpFile.getName().toString();
//enter relative workdirectory
boolean changedir = ftpClient.changeWorkingDirectory(currentWorkDir);
if (changedir) {
FTPFile[] files 
= null;
files 
= ftpClient.listFiles();
for (int i = 0; i < files.length; i++{
downloadFile(files[i], newlocalRelatePath, newRemote);
}

}

//return parent directory
if (changedir)
ftpClient.changeToParentDirectory();
}
 catch (Exception e) {
System.out.println(e);
}

}

}



public String getHostname() {
return hostname;
}



public void setHostname(String hostname) {
this.hostname = hostname;
}



public String getPassword() {
return password;
}



public void setPassword(String password) {
this.password = password;
}



public String getUsername() {
return username;
}



public void setUsername(String username) {
this.username = username;
}



public String getLocalBaseDir() {
return localBaseDir;
}



public void setLocalBaseDir(String localBaseDir) {
this.localBaseDir = localBaseDir;
}



public String getRemoteBaseDir() {
return remoteBaseDir;
}



public void setRemoteBaseDir(String remoteBaseDir) {
this.remoteBaseDir = remoteBaseDir;
}

}
 






BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "utf8")); 

欢迎大家访问我的个人网站 萌萌的IT人

posted on 2014-04-10 18:42 一堣而安 阅读(738) 评论(0)  编辑  收藏 所属分类: java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜