1、ftp4j引用Maven配置
通过github伪maven存储库发布,如果要在maven项目中使用ftp4j作为依赖项,只需将以下存储库定义添加到pom.xml即可:
<repositories> <repository> <id>github-asbachb-releases</id> https://raw.github.com/asbachb/mvn-repo/master/releases </repository> </repositories>
要将ftp4j添加为依赖项,只需将以下声明添加到pom.xml即可:
<dependency>
<groupId>com.github.asbachb</groupId>
<artifactId>ftp4j</artifactId>
<version>1.7.3</version>
</dependency>
如果想使用ftp4j的最新官方发布包含以下声明:
<dependency>
<groupId>it.sauronsoftware.ftp4j</groupId>
<artifactId>ftp4j</artifactId>
<version>1.7.2</version>
</dependency>
2、使用ftp4j上传文件
import it.sauronsoftware.ftp4j.FTPClient; import java.io.File; /** * 该类使用FTP4j客户机库将本地机器中的文件上载到远程FTP服务器 */ public class FTP_FileUpload { public static void main(String[] args) { /* Check for input data */ if (args.length != 3) { System.err.println("Usage: java FTP_FileUpload " + "<IpAddress> <UserName> <Password>"); System.err.println("Example: java FTP_FileUpload 1.2.3.4 other other"); System.exit(1); } // Assignment String ipAddress = args[0]; String userName = args[1]; String password = args[2]; System.out.println("Ip Address = " + ipAddress); System.out.println("User = " + userName); System.out.println("Pass = " + password); // FTP程序操作从这里开始 FTPClient client = null; try { // 从实用程序类获取FTP连接 client = FTPUtility.connect(ipAddress, userName, password); if (client != null) { try { //定义要上载的具有完整路径的文件 String filePath = "sample.tar"; File fileUpload = new File(filePath); System.out.println("Uploading the " + filePath + " to Remote Machine"); //上传文件 client.upload(fileUpload); System.out.println("Successfully Uploaded the " + filePath + " File to Remote Machine"); } catch (Exception e) { System.err.println("ERROR : Error in Transfering File to Remote Machine"); System.exit(3); } } } catch (Exception e) { System.err.println("ERROR : Error in Connecting to Remote Machine"); System.exit(1); } finally { if (client != null) { try { client.disconnect(true); } catch (Exception e) { System.err.println("ERROR : Error in disconnecting the Remote Machine"); } } } System.exit(0); } } /** * Lädt den Inhalt des InputStreams local nach remote. */ private static void storeFile (String remote, InputStream local, FtpConnection con) throws IOException, FTPIllegalReplyException, FTPException, FTPDataTransferException, FTPAbortedException { boolean conWasNull = con == null; if (conWasNull) con = cons.getClient(); FTPClient client = con.getFtpClient(); try { client.upload(remote, local, 0, 0, null); } finally { if (conWasNull) con.setBusy(false); } local.close(); } public void uploadFile(Context context,File fileName) { FTPClient client = new FTPClient(); SharedPreferences userShare = context.getSharedPreferences("AUDIO_SOURCE", 0); String USERNAME = userShare.getString("USERNAME", ""); String PASSWORD = userShare.getString("PASSWORD", ""); String FTP_HOST = userShare.getString("FTP_HOST", ""); Log.d("data" ,USERNAME+" "+PASSWORD+" "+FTP_HOST); try { client.connect(FTP_HOST); client.login(USERNAME, PASSWORD); client.setType(FTPClient.TYPE_BINARY); client.changeDirectory("/"); client.upload(fileName, new MyTransferListener()); } catch (Exception e) { e.printStackTrace(); Log.e("upload Error", e.toString()); //Toast.makeText(context,"client not connected !", Toast.LENGTH_LONG).show(); try { client.disconnect(true); } catch (Exception e2) { Log.e("upload Error", e.toString()); //e2.printStackTrace(); } } } public void uploadFile(Context context,File fileName) { FTPClient client = new FTPClient(); SharedPreferences userShare = context.getSharedPreferences("AUDIO_SOURCE", 0); String USERNAME = userShare.getString("USERNAME", ""); String PASSWORD = userShare.getString("PASSWORD", ""); String FTP_HOST = userShare.getString("FTP_HOST", ""); Log.d("data" ,USERNAME+" "+PASSWORD+" "+FTP_HOST); try { client.connect(FTP_HOST); client.login(USERNAME, PASSWORD); client.setType(FTPClient.TYPE_BINARY); client.changeDirectory("/"); client.upload(fileName, new MyTransferListener()); } catch (Exception e) { e.printStackTrace(); Log.e("upload Error", e.toString()); //Toast.makeText(context,"client not connected !", Toast.LENGTH_LONG).show(); try { client.disconnect(true); } catch (Exception e2) { Log.e("upload Error", e.toString()); //e2.printStackTrace(); } } }
3、使用ftp4j下载文件
package in.techdive.upload; import it.sauronsoftware.ftp4j.FTPClient; import java.io.File; /** 这个类使用FTP4j库将文件从远程FTP服务器下载到本地机器。同时下载 *文件,它注册FTP监听器,它会得到通知,一旦FTP下载操作的状态 *下载完成/中止。 */ public class FTP_FileDownload_WithListener { public static void main(String[] args) { /* Check for input data */ if (args.length != 3) { System.err.println("Usage: java FTP_FileDownload_WithListener " + "<IpAddress> <UserName> <Password>"); System.err.println("Example: java FTP_FileDownload_WithListener 1.2.3.4 other other"); System.exit(1); } // Variable assignment String ipAddress = args[0]; String userName = args[1]; String password = args[2]; System.out.println("Ip Address = " + ipAddress); System.out.println("User = " + userName); System.out.println("Pass = " + password); //FTP程序操作从这里开始 FTPClient client = null; try { // Get the FTP Connection from the Utility class client = FTPUtility.connect(ipAddress, userName, password); if (client != null) { try { // 定义要下载的具有完整路径的文件 String filePath = "D:/Sample.zip"; File fileDownload = new File(filePath); System.out.println("Downloading the " + filePath + " to the Local machine"); // 下载文件 client.download("Sample.zip", fileDownload, new MyFTPListener()); System.out.println("Successfully Downloaded the " + filePath + " file from the Remote Machine"); } catch (Exception e) { System.err.println("ERROR : Error in downloading file from Remote Machine"); System.exit(3); } } } catch (Exception e) { System.err.println("ERROR : Error in Connecting to Remote Machine"); System.exit(1); } finally { if (client != null) { try { client.disconnect(true); } catch (Exception e) { System.err.println("ERROR : Error in disconnecting the Remote Machine"); } } } System.exit(0); } }
官方文档:https://github.com/asbachb/ftp4j