/**
* 连接ftp服务器
* @param ip IP地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @param ftpPath ftp子目录
* @throws IOException
*/
public int connectServer(String ip, int port, String username,
String password, String ftpPath) throws IOException {
system.out.println(this, "=============all_attributes==========="+"ip_"+ip+"port_"+port+"username_"+username+"password_"+password+"ftpPath_"+ftpPath);
int reply;
int connectFlag = 1;
try {
ftpClient.connect(ip, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftpClient.login(username, password);
reply = ftpClient.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftpClient.disconnect();
connectFlag = 0;
return connectFlag;
}
ftpClient.changeWorkingDirectory(ftpPath);//转移到FTP服务器目录
system.out.println(this, "=============connet_ftp_is_ok_falg_"+connectFlag+"===========");
} catch (Exception e) {
system.out.println(this, "=============connet_ftp_is_error"+connectFlag+"===========");
}
return connectFlag;
}
----------------------------------------------------------------------------------------------------------------------------------------
/**
* upload 上传文件
*
* @throws java.lang.Exception
* @return -1 文件不存在 -2 文件内容为空 >0 成功上传,返回文件的大小
* @param newname 上传后的新文件名
* @param filePath 上传的文件的路径
*/
public long upload(String localPath, String newFileName) throws Exception {
long result = 0;
try {
File file = new File(localPath);
if (!file.exists()) {
result = -1;//文件不存在
}
if (file.length() == 0) {
result = -2;//文件内容为空
}
// result = file.length();
is = new FileInputStream(file);
ftpClient.storeFile(newFileName, is);
ftpClient.logout();
system.out.println(this, "========="+newFileName+"文件上传成功==========");
}catch (Exception e) {
e.printStackTrace();
system.out.println(this, "========="+newFileName+"文件上传失败==========");
}finally{
}
return result;
}
---------------------------------------------------------------------------------
/**
* 通过文件路径上传
* @param filePath
* @return
* @throws Exception
*/
public long upload(String filePath) throws Exception {
String newname = "";
if (filePath.indexOf("/") > -1) {
newname = filePath.substring(filePath.lastIndexOf("/") + 1);
} else {
newname = filePath;
}
return upload(filePath, newname);
}
----------------------------------------------
/**
*
* closeServer
*
* 断开与ftp服务器的链接
*
* @throws java.io.IOException
*/
public void closeServer() throws IOException
{
try {
if (is != null) {
is.close();
}
if (ftpClient != null)
{
ftpClient.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
-------------------------------------------------
/**
* 读取文本文件.
*
*/
public static String readTxtFile(File filePathAndName){
String read;
FileReader fileread;
try {
fileread = new FileReader(filePathAndName);
bufread = new BufferedReader(fileread);
try {
while ((read = bufread.readLine()) != null) {
readStr = readStr + read+ "\r\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("文件内容是:"+ "\r\n" + readStr);
return readStr;
}
------------------------------------------------------
/**
* 写文件.
*
*/
public static void writeTxtFile(String newStr,File filePathAndName) throws IOException{
//先读取原有文件内容,然后进行写入操作
String filein = newStr + "\r\n" + readStr + "\r\n";
RandomAccessFile mm = null;
try {
mm = new RandomAccessFile(filePathAndName, "rw");
mm.writeBytes(filein);
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} finally {
if (mm != null) {
try {
mm.close();
} catch (IOException e2) {
// TODO 自动生成 catch 块
e2.printStackTrace();
}
}
}
}
----------------------------------------------------
/**
*
* downloadFile
*
* 下载ftp服务器的资源
* @param remoteFileName 待下载文件名称
* @param localDires 本里存放路径
* @param ftpPath ftp服务器存放要下载文件的子目录
*
* @throws java.io.IOException
*/
public void downloadFile(String remoteFileName,String localDires , String ftpPath ) throws IOException{
String strfilepath = localDires +"/"+ remoteFileName; //写入地址 文件保存路径
BufferedOutputStream bf = null;
boolean success=false;
try {
ftpClient.changeWorkingDirectory(ftpPath);
bf= new BufferedOutputStream(new FileOutputStream(strfilepath));
system.out.println(this, "========="+remoteFileName+"开始下载==========");
success = ftpClient.retrieveFile(remoteFileName,bf); //下载操作
// ftpClient.logout();
if(success==true)
{
system.out.println(this, "========="+remoteFileName+"成功下载到=========="+localDires);
}
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} finally {
if (null != bf) {
try {
bf.flush();
bf.close();
} catch (IOException e2) {
// TODO 自动生成 catch 块
e2.printStackTrace();
}
}
}
if(success=false)
{
system.out.println(this, "========="+remoteFileName+"下载失败==========");
}
}
-----------------------------------------
org.apache.commons.net工具下 对ftp的简单操作
原文:http://www.cnblogs.com/h454036111/p/3971209.html