1、ftp4j引用Maven配置
通过github伪maven存储库发布,如果要在maven项目中使用ftp4j作为依赖项,只需将以下存储库定义添加到pom.xml即可:
github-asbachb-releases https://raw.github.com/asbachb/mvn-repo/master/releases
要将ftp4j添加为依赖项,只需将以下声明添加到pom.xml即可:
com.github.asbachb
ftp4j
1.7.3
如果想使用ftp4j的最新官方发布包含以下声明:
it.sauronsoftware.ftp4j
ftp4j
1.7.2
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 " + ""); 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 " + ""); 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