最近看到几篇关于java中操作ftp的文章,所以想写一个总结贴,标记一下,方便以后应用。
首先,我们可以应用java中的ftp库,java中提供了一个ftpclient的类,提供了很多操作ftp的方法。
先上代码,一看便知,很简单,应用时只要传递相应的server,user,password等就行了。
import java.io.IOException;
import sun.net.*;
import sun.net.ftp.*;
public class FTP {
public static void main(String[] args) {
String ftpserver="server url";
String user="user";
String pwd="pwd";
String path="path";
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer(ftpserver);
echo(ftpClient.getResponseString());
ftpClient.login(user, pwd);
echo(ftpClient.getResponseString());
if (path.length() != 0) {
ftpClient.cd(path);
echo(ftpClient.getResponseString());
}
TelnetInputStream tis = ftpClient.list();
echo(ftpClient.getResponseString());
int c;
while ((c = tis.read())!= -1) {
System.out.print((char)c);
}
echo(ftpClient.getResponseString());
tis.close();
echo(ftpClient.getResponseString());
ftpClient.closeServer();
echo(ftpClient.getResponseString());
}
catch(IOException ex){
ex.printStackTrace();
}
}
static void echo(String response){
System.out.println("Response-----> " + response);
}
}
在其内部都是发送socket请求的,只是帮我们封装好了。我们只要用相应的方法就行了。
在每个方面调用后面我都打印了从服务器返回的内容,这样可以方便我们ftp协议的理解。
读者可以拷贝到本地运行一下,看看ftp到底是如何运行的。
为了更清楚的理解ftp协议,下来使用原始的socket来操作ftp。
ftp服务器一般是在21端口监听的一个�