android学习之FTP

这篇博客介绍了如何在Android中使用FTP4J库进行FTP连接、登录,以及实现文件的上传和下载操作。通过`CmdConnect`类展示FTP连接和登录过程,`CmdUpload`类用于文件上传,`Cmddownload`类则处理文件下载任务。在上传和下载过程中,还实现了数据传输监听来跟踪进度。

import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferListener;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;

 

 

public class CmdConnect extends FtpCmd {
  @Override
  public void run() {
   boolean errorAndRetry = false; // 鏍规嵁涓嶅悓鐨勫紓甯哥被鍨嬶紝鏄惁閲嶆柊鎹曡幏
   try {
    String[] welcome = mFTPClient.connect(mFTPHost, mFTPPort);
    if (welcome != null) {
     for (String value : welcome) {
      Log.e(TAG, "connect " + value);
     }
    }
    mFTPClient.login(mFTPUser, mFTPPassword);
    Log.e(TAG, "Login Sucess!");
    mHandler.sendEmptyMessage(DeviceTest.MSG_LOGIN_SUCESS);
   } catch (IllegalStateException illegalEx) {
    illegalEx.printStackTrace();
    errorAndRetry = true;
   } catch (IOException ex) {
    ex.printStackTrace();
    errorAndRetry = true;
   } catch (FTPIllegalReplyException e) {
    e.printStackTrace();
   } catch (FTPException e) {
    e.printStackTrace();
    errorAndRetry = true;
   }
  }
 }
 
 
 
 public class CmdUpload extends AsyncTask {
  String path;

  public CmdUpload() {

  }

  @Override
  protected Boolean doInBackground(String... params) {
   path = params[0];
   try {
    File file = new File(path);
    mFTPClient.upload(file, new DownloadFTPDataTransferListener(
      file.length()));
   } catch (Exception ex) {
    ex.printStackTrace();
    return false;
   }

   return true;
  }

 

public class Cmddownload extends AsyncTask {
  String path="/mnt/sdcard/test.ini";

  public Cmddownload() {

  }

  @Override
  protected Boolean doInBackground(String... params) {
   //path = params[0];
    File file = new File(path);
    //mFTPClient.upload(file, new DownloadFTPDataTransferListener(file.length()));
    try {
     mFTPClient.download("FTP_INFO_FILE", file);
     Log.v(TAG,"download success");
    } catch (IllegalStateException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (FTPIllegalReplyException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (FTPException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (FTPDataTransferException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (FTPAbortedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   return true;
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值