1. FTP description
FTP is the English abbreviation of FileTransferProtocol. It is a TCP/IP protocol and belongs to the TCP/IP protocol group. Transfer control files in both directions. At the same time, it is also an application (application). FTP applications vary depending on the operating system, and all of them follow the same protocol for transferring files. The protocol consists of two parts, one is the FTP server and the other is the FTP client.
2. Download ideas
(1) Set the file type (binary)
(2) Process the ftp corresponding file input stream, ftp client Object and ftp file input stream
(3) Processed file list, used to perform file deletion using
(4) Process the current file name
3. FTP download example
/** * * JAVA操作 FTP 下载 * 文件下载。 * */ private void ftpDownload() { FTPClient ftpClient = null; InputStream input = null; boolean loginFlag = false; List<String> list = new ArrayList<String>(); try { int defaultPort = CommonsMessage.FTP_DEFAULT_PORT; // 21 int timeout = M400Constant.NUM_SIXTY_THOUSAND * M400Constant.NUM_TWO; // 120000 ftpClient = new FTPClient(); ftpClient.setDefaultPort(defaultPort); ftpClient.setConnectTimeout(timeout); // ftpClient.setSoTimeout(timeout); ftpClient.setDefaultTimeout(timeout); ftpClient.setDataTimeout(timeout); ftpClient.setControlEncoding("UTF-8"); FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX); conf.setServerLanguageCode("en"); conf.setDefaultDateFormatStr("MMM dd HH:mm"); ftpClient.configure(conf); ftpClient.connect(SystemConfig.getKey("scpFtpIp")); loginFlag = ftpClient.login(SystemConfig.getKey("scpFtpUserName").trim(), SystemConfig.getKey("scpFtpPassword").trim()); String ftpDir = SystemConfig.getKey("ftpHangupDir").trim(); if (!loginFlag) { DEBUGGER.debug("login scp ftp is :" + loginFlag); } // String ftpDir = SystemConfig.getKey("ftpHangupDir").trim(); if (ftpClient.changeWorkingDirectory(ftpDir)) { FTPFile file[] = ftpClient.listFiles(ftpDir); if (file != null && file.length > 0) { DEBUGGER.debug("hungup file size is: " + file.length); for (int i = 0; i < file.length; i++) { String fileName = file[i].getName(); ftpClient.setBufferSize(CommonsMessage.ONE_K_BUFFER_SIZE); // 设置文件类型(二进制) ftpClient.setFileType(FTP.BINARY_FILE_TYPE); input = ftpClient.retrieveFileStream(fileName); processInput(ftpClient, input, list, fileName); // if (downFlag) { // ftpClient.deleteFile(fileName); // } } } else { try { Thread.sleep(M400Constant.NUM_FIVE_THOUSAND); } catch (InterruptedException e) { /* * if (DEBUGGER.isDebugEnable()) { * DEBUGGER.debug("Failed to queryScpToQuery", e); } */ error("Failed to queryScpToQuery", e); } } } else { DEBUGGER.debug("scp dir is error "); } } catch (Exception e) { /* * DEBUGGER.debug("dowonload file is faild ", e); */ error("dowonload file is faild ", e); } finally { close(input, "close inputStream is faild "); if (ftpClient != null) { try { deleteFile(ftpClient, list); boolean logoutFlag = false; try { logoutFlag = ftpClient.logout(); // DEBUGGER.debug("logout : " + logoutFlag); } catch (Exception e) { /* * DEBUGGER.debug("logout : " + logoutFlag); */ error("logout : " + logoutFlag, e); } ftpClient = null; } catch (Exception e) { /* * if (DEBUGGER.isDebugEnable()) { * DEBUGGER.error("Failed to ftpDownload", e); } */ error("Failed to ftpDownload", e); } // try { // ftpClient.disconnect(); // } catch (IOException e) { // if (DEBUGGER.isDebugEnable()) { // DEBUGGER.debug("Failed to ftpDownload", e); // } // } } } } /** * 处理ftp对应文件输入流。 * * @param ftpClient * ftp客户端对象 * @param input * ftp文件输入流 * @param list * 处理完毕的文件列表,用于执行文件删除使用 * @param fileName * 当前处理的文件名称 */ private void processInput(FTPClient ftpClient, InputStream input, List<String> list, String fileName) { if (input == null) { return; } // boolean downFlag = callingService(input); callingService(input); try { input.close(); ftpClient.completePendingCommand(); list.add(fileName); } catch (Exception e) { /* * DEBUGGER.debug("Failed to ftpDownload", e); */ error("Failed to ftpDownload", e); } } }
The above is the detailed content of How to use FTP download in java. For more information, please follow other related articles on the PHP Chinese website!

Why can't the main class be found after copying and pasting the package in IDEA? Using IntelliJIDEA...

State synchronization between Java multi-interface calls: How to ensure that interface A is called after it is executed? In Java development, you often encounter multiple calls...

How to stop subsequent code execution when ID is repeated in Java programming. When learning Java programming, you often encounter such a requirement: when a certain condition is met,...

In-depth discussion of final consistency: In the distributed system of application scenarios and implementation methods, ensuring data consistency has always been a major challenge for developers. This article...

The troubleshooting idea of SSH connection failure after SpringBoot service has been running for a period of time has recently encountered a problem: a Spring...

How to push video streams from Hikvision camera SDK to front-end Vue project? During the development process, you often encounter videos that need to be captured by the camera to be circulated...

How to use access_token of OAuth2.0 to restrict interface access permissions How to ensure access_token when authorizing using OAuth2.0...

SpringBootRedis gets the key garbled problem analysis using Spring...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.