您的位置:首页 > 运维架构 > Apache

org.apache.commons.net.ftp Class FTPClient

2015-11-25 09:51 211 查看
基本介绍:

FTPClient类封装了上传文件到FTP服务器和从FTP服务器下载文件的所有必需的功能。这个类关注和FTP服务器底层的细节交互,提供了便捷的上层的接口。就像SocketClient类的所有派生类一样,在做任何其他事情之前都必须首先以connect的方式连接到服务器,并且在结束和服务器的交互之后要最终关闭连接。然后你需要检查FTP的响应代码来确定连接是否成功。举例如下:

唯一的实时连接之后你需要立即检查应答代码(因为连接的返回类型是void)。在FTPClient中的所有的FTP命令都遵循一个约定,就是他们要么返回一个Boolean值,要么返回一个其他的值。boolean方法在FTP服务器应答成功的时候返回true,在FTP服务器应答错误或失败结果的时候返回false。返回值不是boolean类型的方法返回一个包含由FTP命令产生的高层数据的值,或者在应答错误或失败结果的情况下返货null。如果你想访问导致成功或失败的FTP应答代码,你必须在应答成功或直白之后调用getReplyCode方法。

构造方法详解:

FTPClient()

默认的构造方法。创建一个新的FTPClient实例,数据连接模式设置为ACTIVE_LOCAL_DATA_CONNECTION_MODE,文件类型设置为FTP.ASCII_FILE_TYPE,文件格式设置为FTP.NON_PRINT_TEXT_FORMAT,文件结构设置为FTP.FILE_STRUCTURE,传输模式设置为FTP.STREAM_TRANSFER_MODE.

方法详解:

protected Socket _openDataConnection_(int command, String arg) throws IOException

与FTP服务器建立一个数据连接,如果成功的话返回一个Socket。如果重置偏移量(restart offset)被setRestartOffset(long)方法设置,在这个数据连接建立之前一个以这个偏移量(offset)为参数的REST命令会作用于该服务器。主动模式连接也会导致本地端口命令触发。

参数:

command FTP命令发送的文本表示。

arg FTP命令的参数。如果该参数null,则该命令以无参数方式发送。

返回:

将返回与这个已建立的数据连接对应的Socket。在建立和初始化连接的期间如果FTP协议报告了错误,那么将返回null。

protected void _connectionAction() throws IOException

TelnetClient类复制描述。处理特殊的连接请求。该方法重写了父类——FTP的同名方法。

public void setDataTimeout(int timeout)

在从该连接读取数据时,以毫秒为单位类设置超时时间。这个超时时间将在数据连接建立之后立即被设置。

参数:

timeout 在打开数据连接Socket时默认此毫秒单位数的超时时间。

public void setParserFactory(FTPFileEntryParserFactory parserFactory)

设置用于创建解析器工厂提供的工厂对象。

参数:

parserFactory 用来创建FTPFileEntryParsers的工厂对象。

public void disconnect() throws IOException

关闭与FTP服务器的连接并且恢复连接参数默认值。该方法重写父类FTP的方法。

public boolean login(String username, String password)
throws IOException

用提供的用户名和密码登录到FTP服务器。

参数:

username 用于登录的用户名。

password 用于登录的密码。

返回:

登录成功返回true,失败返回false。

public boolean login(String username, String password, String account) throws IOException

用提供的用户名,密码和账户登录到FTP服务器。如果这个服务器没有账户,则只需要用户名和密码,账户参数不需要用到。

参数:

username 用于登录的用户名。

password 用于登录的密码。

account 用于登录的账户。

返回:

登录成功返回true,失败返回false。

public boolean logout() throws IOException

通过发送QUIT命令来退出FTP服务器。

返回:

成功返回true,失败返回false。

public boolean changeWorkingDirectory(String pathname) throws IOException

变换当前FTP的工作路径。

参数:

pathname 新的当前工作路径。

返回:

成功返回true,失败返回false。

public boolean changeToParentDirectory() throws IOException

将当前的工作路径切换到父路径。

返回:

成功返回true,失败返回false。

public boolean storeFile(String remote, InputStream local) throws IOException

从指定的输入流中输入,并以指定的名称将文件保存在服务器中。这个方法不能关闭给定的输入流。如果当前的文件类型是ASCII,文件中行分隔符被透明转换成NETASCII格式(即,你不需要指定一个特殊的输入流来做此事)。

参数:

remote 给定将要存放在服务器上的文件名。

local 本地能够读取文件的输入流。

返回:

成功返回true,失败返回false。

public boolean rename(String from, String to) throws IOException

更改远程文件名。

参数:

from 需要更改的远程文件名。

to 远程文件的心文件名。

返回:

成功返回true,失败返回false。

public boolean deleteFile(String pathname) throws IOException

删除服务器上的指定文件。

参数:

pathname 要删除文件的路径名。

返回:

成功返回true,失败返回false。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: