




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.ftp Class FTPClient类FTPClient java.lang.Object java.lang.Object继承 .SocketClient .SocketClient .ftp.FTP .ftp.FTP .ftp.FTPClient .ftp.FTPClientAll Implemented Interfaces: 所有已实现的接口: Configurable 可配置 Direct Known Subclasses: 直接已知子类: FTPHTTPClient , FTPSClient FTPHTTPClient , FTPSClient public class FTPClient公共类FTPClient extends FTP延伸的FTP implements Configurable实现了可配置 FTPClient encapsulates all the functionality necessary to store and retrieve files from an FTP server. FTPClient封装了所有必要的功能来存储和检索从FTP服务器上的文件。 This class takes care of all low level details of interacting with an FTP server and provides a convenient higher level interface.这个类负责所有与FTP服务器交互的底层细节,并提供了便捷的更高层次的接口。 As with all classes derived from SocketClient , you must first connect to the server with connect before doing anything, and finally disconnect after youre completely finished interacting with the server.正如来自所有类SocketClient ,您必须首先连接到与服务器connect做任何事之前,最后disconnect完成后,你完全与服务器交互。 Then you need to check the FTP reply code to see if the connection was successful.然后,你需要检查的FTP答复代码,看看是否连接成功。 For example:例如: boolean error = false;布尔错误= 0; try 尝试 int reply;诠释答复; ftp.connect(); ftp.connect(“”); System.out.println(Connected to + server + .); System.out.println(“连接到”+服务器+ .); System.out.print(ftp.getReplyString(); System.out.print(ftp.getReplyString(); / After connection attempt, you should check the reply code to verify / /连接尝试后,你应该检查代码以验证答复 / success. / /成功。 reply = ftp.getReplyCode();答复= ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply) 如果(!FTPReply.isPositiveCompletion(回复) ftp.disconnect(); ftp.disconnect(); System.err.println(FTP server refused connection.); System.err.println(“FTP服务器拒绝连接。”); System.exit(1); System.exit(1); . . / transfer files / /传送文件 ftp.logout(); ftp.logout(); catch(IOException e) 捕捉(IOException异常五) error = true;误差为真; e.printStackTrace(); e.printStackTrace(); finally 最后 if(ftp.isConnected() 如果(ftp.isConnected() try 尝试 ftp.disconnect(); ftp.disconnect(); catch(IOException ioe) 捕捉(IOException异常雇主组织) / do nothing / /什么也不做 System.exit(error ? 1 : 0); System.exit(错误1:0?); Immediately after connecting is the only real time you need to check the reply code (because connect is of type void).连接后立即是唯一真正的时候你需要检查答复代码(因为是连接类型为void)。 The convention for all the FTP command methods in FTPClient is such that they either return a boolean value or some other value.对于所有的FTP FTPClient指挥方法的公约就是这样,他们要么返回一个布尔值或其他值。 The boolean methods return true on a successful completion reply from the FTP server and false on a reply resulting in an error condition or failure.该方法返回一个布尔从FTP服务器成功完成答辩,假假真真的错误条件中的一个或故障而导致的答复。 The methods returning a value other than boolean return a value containing the higher level data produced by the FTP command, or null if a reply resulted in an error condition or failure.该方法返回一个布尔值返回值比含有较高水平的FTP命令,或者为null,如果产生一个错误条件答复或故障导致其他数据。 If you want to access the exact FTP reply code causing a success or failure, you must call getReplyCode after a success or failure.如果您要访问的FTP的确切答复代码导致成功或失败,你必须调用getReplyCode后,成功或失败。 The default settings for FTPClient are for it to use FTP.ASCII_FILE_TYPE , FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE , and FTP.FILE_STRUCTURE . FTPClient的默认设置是它使用FTP.ASCII_FILE_TYPE , FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE和FTP.FILE_STRUCTURE 。 The only file types directly supported are FTP.ASCII_FILE_TYPE and FTP.BINARY_FILE_TYPE .唯一的文件直接支持的类型是FTP.ASCII_FILE_TYPE和FTP.BINARY_FILE_TYPE 。 Because there are at least 4 different EBCDIC encodings, we have opted not to provide direct support for EBCDIC.因为至少有4种不同的EBCDIC编码,我们还选择了不提供直接支持的EBCDIC。 To transfer EBCDIC and other unsupported file types you must create your own filter InputStreams and OutputStreams and wrap them around the streams returned or required by the FTPClient methods.为了转移EBCDIC和其他不支持的文件类型,你必须创建自己的过滤InputStreams和OutputStreams和总结他们周围的流退回或由FTPClient方法所需。 FTPClient uses the NetASCII filter streams to provide transparent handling of ASCII files. FTPClient使用NetASCII过滤器流提供ASCII文件透明处理。 We will consider incorporating EBCDIC support if there is enough demand.我们会考虑把EBCDIC码的支持,如果有足够的需求。 FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE , and FTP.FILE_STRUCTURE are the only supported formats, transfer modes, and file structures. FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE和FTP.FILE_STRUCTURE是唯一支持的格式,传输模式和文件结构。 Because the handling of sockets on different platforms can differ significantly, the FTPClient automatically issues a new PORT (or EPRT) command prior to every transfer requiring that the server connect to the clients data port.由于在不同平台上插座处理可以显着差异,在FTPClient自动发出一个新的端口(或EPRT)命令之前,每次传输要求的服务器连接到客户端的数据端口。 This ensures identical problem-free behavior on Windows, Unix, and Macintosh platforms.这将确保相同的Windows,Unix和Macintosh平台无故障的行为。 Additionally, it relieves programmers from having to issue the PORT (or EPRT) command themselves and dealing with platform dependent issues.此外,它解除不必发出端口(或EPRT)命令自己和与平台有关问题的程序员。 Additionally, for security purposes, all data connections to the client are verified to ensure that they originated from the intended party (host and port).此外,为了安全起见,所有的数据连接到客户端进行验证,以确保他们打算从党(主机和端口)起源。 If a data connection is initiated by an unexpected party, the command will close the socket and throw an IOException.如果一个数据连接是由党发起的一个意外,该命令将关闭套接字并抛出一个IOException异常。 You may disable this behavior with setRemoteVerificationEnabled() .您可以禁用此行为setRemoteVerificationEnabled() You should keep in mind that the FTP server may choose to prematurely close a connection if the client has been idle for longer than a given time period (usually 900 seconds).你应该记住,在FTP服务器可以选择过早关闭连接,如果客户已超过给定的时间较长时期(通常为900秒)闲置。 The FTPClient class will detect a premature FTP server connection closing when it receives a FTPReply.SERVICE_NOT_AVAILABLE response to a command.将检测的FTPClient类FTP服务器连接过早关闭,当它收到FTPReply.SERVICE_NOT_AVAILABLE响应命令。 When that occurs, the FTP class method encountering that reply will throw an FTPConnectionClosedException . FTPConnectionClosedException is a subclass of IOException and therefore need not be caught separately, but if you are going to catch it separately, its catch block must appear before the more general IOException catch block.一旦这种情况发生时,FTP类方法遇到的答复将抛出一个FTPConnectionClosedException 。 FTPConnectionClosedException是一个子类IOException ,因此不必分别被捕获,但如果你要抓住它分开,它的catch块必须出现在更一般的IOException catch块。 When you encounter an FTPConnectionClosedException , you must disconnect the connection with disconnect() to properly clean up the system resources used by FTPClient.当你遇到一个FTPConnectionClosedException ,必须断开与连接disconnect()妥善清理,系统资源使用FTPClient。 Before disconnecting, you may check the last reply code and text with getReplyCode , getReplyString , and getReplyStrings .在断开,你可以检查代码和文本的最后答复与getReplyCode , getReplyString和getReplyStrings 。 You may avoid server disconnections while the client is idle by periodically sending NOOP commands to the server.您可能会避免服务器断开,而客户端闲置的空操作指令通过定期发送到服务器。 Rather than list it separately for each method, we mention here that every method communicating with the server and throwing an IOException can also throw a MalformedServerReplyException , which is a subclass of IOException.它不是单独列出每个方法,我们在这里提到的每个方法与服务器通信,并抛出一个IOException异常也可引发MalformedServerReplyException ,这是一个IOException异常子类。 A MalformedServerReplyException will be thrown when the reply received from the server deviates enough from the protocol specification that it cannot be interpreted in a useful manner despite attempts to be as lenient as possible.将抛出一个MalformedServerReplyException答复时,从服务器收到的偏离足够的协议规范,它不能在一个有用的方式解释尽管试图尽可能宽松。 Listing API Examples Both paged and unpaged examples of directory listings are available, as follows:上市API的两个例子的目录列表分页和无页数的范例,如下: Unpaged (whole list) access, using a parser accessible by auto-detect:无页数(全名单)访问,使用分析器可经自动检测: FTPClient f = new FTPClient(); FTPClient f =new FTPClient(); f.connect(server); f.connect(服务器); f.login(username, password); f.login(用户名,密码); FTPFile files = listFiles(directory); FTPFile 文件= listfiles 套件(目录); Paged access, using a parser not accessible by auto-detect.分页访问,使用分析器无法访问的自动检测。 The class defined in the first parameter of initateListParsing should be derived from .FTPFileEntryParser:在应该从.FTPFileEntryParser派生initateListParsing第一个参数定义的类: FTPClient f = new FTPClient(); FTPClient f =new FTPClient(); f.connect(server); f.connect(服务器); f.login(username, password); f.login(用户名,密码); FTPListParseEngine engine = FTPListParseEngine引擎= f.initiateListParsing(com.whatever.YourOwnParser, directory); f.initiateListParsing(“com.whatever.YourOwnParser”,目录); while (engine.hasNext() 而(engine.hasNext() FTPFile files = engine.getNext(25); / page size you want FTPFile 文件= engine.getNext(25); / /“页面大小”你想要 /do whatever you want with these files, display them, etc. / /做你想做这些文件,显示它们,等 /expensive FTPFile objects not created until needed. / /昂贵FTPFile不创建对象,直到需要。 Paged access, using a parser accessible by auto-detect:分页访问,使用分析器可经自动检测: FTPClient f = new FTPClient(); FTPClient f =new FTPClient(); f.connect(server); f.connect(服务器); f.login(username, password); f.login(用户名,密码); FTPListParseEngine engine = f.initiateListParsing(directory); FTPListParseEngine engine = f.initiateListParsing(目录); while (engine.hasNext() 而(engine.hasNext() FTPFile files = engine.getNext(25); / page size you want FTPFile 文件= engine.getNext(25); / /“页面大小”你想要 /do whatever you want with these files, display them, etc. / /做你想做这些文件,显示它们,等 /expensive FTPFile objects not created until needed. / /昂贵FTPFile不创建对象,直到需要。 For examples of using FTPClient on servers whose directory listings有关使用服务器上的目录清单FTPClient例子 use languages other than English使用英语以外的语言 use date formats other than the American English standard MM d yyyy使用日期格式“以外的美国英语”标准MM d yyyy are in different timezones and you need accurate timestamps for dependency checking as in Ant在不同的时区,你需要在蚁群依赖检查准确的时间戳 see FTPClientConfig .见FTPClientConfig 。 Author: 作者: Daniel F. Savarese, Rory Winston丹尼尔楼Savarese,罗里温斯顿 See Also: 另见: FTP , FTPConnectionClosedException , FTPFileEntryParser , FTPFileEntryParserFactory , DefaultFTPFileEntryParserFactory , FTPClientConfig , MalformedServerReplyException FTP , FTPConnectionClosedException , FTPFileEntryParser , FTPFileEntryParserFactory , DefaultFTPFileEntryParserFactory , FTPClientConfig , MalformedServerReplyException Field Summary 字段摘要 static int ACTIVE_LOCAL_DATA_CONNECTION_MODE A constant indicating the FTP session is expecting all transfers to occur between the client (local) and server and that the server should connect to the clients data port to initiate a data transfer.一个常量指示期待的FTP会话之间发生的所有传输客户端(本地)和服务器,该服务器应该连接到客户端的数据端口来启动数据传输。 static int ACTIVE_REMOTE_DATA_CONNECTION_MODE A constant indicating the FTP session is expecting all transfers to occur between two remote servers and that the server the client is connected to should connect to the other servers data port to initiate a data transfer.一个常量指示期待的FTP会话的所有转让发生在两个远程服务器,而客户端连接到要连接到其他服务器的数据端口发起数据传输服务器。 static int PASSIVE_LOCAL_DATA_CONNECTION_MODE A constant indicating the FTP session is expecting all transfers to occur between the client (local) and server and that the server is in passive mode, requiring the client to connect to the servers data port to initiate a transfer.一个常量指示期待的FTP会话之间发生的所有传输客户端(本地)和服务器,服务器在被动模式时,要求客户端连接到服务器的数据端口来启动传输。 static int PASSIVE_REMOTE_DATA_CONNECTION_MODE A constant indicating the FTP session is expecting all transfers to occur between two remote servers and that the server the client is connected to is in passive mode, requiring the other server to connect to the first servers data port to initiate a data transfer.一个常量指示期待的FTP会话的所有转让发生在两个远程服务器,而客户端连接到处于被动模式,要求其他服务器连接到第一个服务器的数据端口发起数据传输服务器。 Fields inherited from class .ftp. FTP .ftp类从继承的字段。 的FTP _commandSupport_ , _controlEncoding , _controlInput_ , _controlOutput_ , _newReplyString , _replyCode , _replyLines , _replyString , ASCII_FILE_TYPE , BINARY_FILE_TYPE , BLOCK_TRANSFER_MODE , CARRIAGE_CONTROL_TEXT_FORMAT , COMPRESSED_TRANSFER_MODE , DEFAULT_CONTROL_ENCODING , DEFAULT_DATA_PORT , DEFAULT_PORT , EBCDIC_FILE_TYPE , FILE_STRUCTURE , LOCAL_FILE_TYPE , NON_PRINT_TEXT_FORMAT , PAGE_STRUCTURE , RECORD_STRUCTURE , STREAM_TRANSFER_MODE , strictMultilineParsing , TELNET_TEXT_FORMAT Fields inherited from class . SocketClient 类从继承的字段。 SocketClient _defaultPort_ , _input_ , _output_ , _serverSocketFactory_ , _socket_ , _socketFactory_ , _timeout_ , connectTimeout , NETASCII_EOL Constructor Summary 构造方法摘要 FTPClient () Default FTPClient constructor.默认FTPClient构造。 Method Summary 方法摘要 protected void _connectAction_ () Initiates control connections and gets initial reply.启动控制连接,并得到初步答复。 protected Socket _openDataConnection_ (int command, String arg) Establishes a data connection with the FTP server, returning a Socket for the connection if successful.建立一个与FTP服务器的数据连接,如果返回的成功连接的Socket。 boolean abort () Abort a transfer in progress.中止正在进行的传输。 boolean allocate (int bytes) Reserve a number of bytes on the server for the next file transfer.保留一字节的下一个文件传输服务器数量。 boolean allocate (int bytes, int recordSize) Reserve space on the server for the next file transfer.储备空间,为下一个文件传输服务器。 boolean appendFile ( String remote, InputStream local) Appends to a file on the server with the given name, taking input from the given InputStream.上的一个带有特定名称的服务器上的文件追加,即从定InputStream输入。 OutputStream appendFileStream ( String remote) Returns an OutputStream through which data can be written to append to a file on the server with the given name.返回一个通过该数据可以被写入附加的带有特定名称的服务器上的文件的OutputStream。 boolean changeToParentDirectory () Change to the parent directory of the current working directory.更改为当前工作目录的父目录。 boolean changeWorkingDirectory ( String pathname) Change the current working directory of the FTP session.更改的FTP会话的当前工作目录。 boolean completePendingCommand () There are a few FTPClient methods that do not complete the entire sequence of FTP commands to complete a transaction.有几个FTPClient方法不完成整个FTP命令序列来完成交易。 void configure ( FTPClientConfig config) Implementation of the Configurable interface.实施Configurable界面。 boolean deleteFile ( String pathname) Deletes a file on the FTP server.删除在FTP服务器上的文件。 void disconnect () Closes the connection to the FTP server and restores connection parameters to the default values.关闭到FTP服务器,连接参数恢复到默认值的连接。 void enterLocalActiveMode () Set the current data connection mode to ACTIVE_LOCAL_DATA_CONNECTION_MODE .设置当前数据连接模式ACTIVE_LOCAL_DATA_CONNECTION_MODE 。 void enterLocalPassiveMode () Set the current data connection mode to PASSIVE_LOCAL_DATA_CONNECTION_MODE .设置当前数据连接模式PASSIVE_LOCAL_DATA_CONNECTION_MODE 。 boolean enterRemoteActiveMode ( InetAddress host, int port) Set the current data connection mode to ACTIVE_REMOTE_DATA_CONNECTION .设置当前数据连接模式ACTIVE_REMOTE_DATA_CONNECTION 。 boolean enterRemotePassiveMode () Set the current data connection mode to PASSIVE_REMOTE_DATA_CONNECTION_MODE .设置当前数据连接模式PASSIVE_REMOTE_DATA_CONNECTION_MODE 。 boolean features () Query the server for supported features.查询支持的功能服务器。 int getBufferSize () Retrieve the current internal buffer size.检索当前的内部缓冲区的大小。 int getDataConnectionMode () Returns the current data connection mode (one of the _DATA_CONNECTION_MODE constants.返回当前的数据连接模式(一_DATA_CONNECTION_MODE常数。 protected String getListArguments ( String pathname) boolean getListHiddenFiles () String getModificationTime ( String pathname) Issue the FTP MDTM command (not supported by all servers to retrieve the last modification time of a file.问题的FTP MDTM命令(并非所有的服务器支持,以获取一个文件的最后修改时间。 String getPassiveHost () Returns the hostname or IP address (in the form of a string) returned by the server when entering passive mode.返回的主机名或IP地址(在一个字符串的形式)时,由服务器返回进入被动模式。 int getPassivePort () If in passive mode, returns the data port of the passive host.如果在被动模式下,返回被动主机的数据端口。 long getRestartOffset () Fetches the restart offset.撷取重新启动所抵消。 String getStatus () Issue the FTP STAT command to the server. STAT命令发出的FTP服务器。 String getStatus ( String pathname) Issue the FTP STAT command to the server for a given pathname. STAT命令发出的FTP的服务器为给定的路径名。 String getSystemName () Deprecated. Use getSystemType() - which does not return null. 。弃用 使用getSystemType() -不返回null。 Will be deleted in version 3.0 将3.0版中删除 String getSystemType () Fetches the system type from the server and returns the string.从服务器获取并返回字符串系统类型。 FTPListParseEngine initiateListParsing () Using the default autodetect mechanism, initialize an FTPListParseEngine object containing a raw file information for the current working directory on the server This information is obtained through the LIST command.使用默认的自动检测机制,初始化FTPListParseEngine对象,包含了当前工作的这些信息是通过LIST命令获取服务器目录中的原始文件信息。 FTPListParseEngine initiateListParsing ( String pathname) Using the default autodetect mechanism, initialize an FTPListParseEngine object containing a raw file information for the supplied directory.使用默认的自动检测机制,初始化FTPListParseEngin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东深圳市宝安区鹏晖中英文学校急聘生物教师1人模拟试卷及参考答案详解1套
- 2025河南新乡事业单位招录203人模拟试卷及答案详解(各地真题)
- 2025江苏省宿迁市沭阳县面向普通高校应届师范类毕业生招聘16人(第二批次)模拟试卷完整答案详解
- 2025年甘肃省陇南市徽县招聘城镇公益性岗位人员26人考前自测高频考点模拟试题完整答案详解
- 小学安全培训收费课件
- 2025年甘肃省平凉华亭市山寨回族乡招聘行政村村文书考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025辽宁沈阳城市建设投资集团有限公司所属企业沈阳城投新能源集团有限公司招聘7人考前自测高频考点模拟试题完整参考答案详解
- 2025湖南郴州资兴市第一人民医院招聘模拟试卷带答案详解
- 小学安全双控培训内容课件
- 安全培训教学评价意见课件
- 桩基础负摩阻计算表格V2.0
- MySQL数据库PPT完整全套教学课件
- 人工智能机器学习课件
- GB/T 6441-1986企业职工伤亡事故分类
- 第一章 电渣冶金
- GB/T 12719-2021矿区水文地质工程地质勘查规范
- 剖宫产术后护理常规
- 老年康复理论知识考核试题及答案
- 第3章-信息可视化设计的流程课件
- 实验数据的误差分析课件
- 供水管网爆管事故应急抢修全新预案修订
评论
0/150
提交评论