信息产业培训网

JAVA中实现FTP功能代码

http://www.miiceic.org.cn   2008-10-30 10:34:23   中程在线   浏览数:
关键字:JAVA中 实现FTP功能

  import java.io.FileInputStream;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.OutputStream;

  import java.io.PrintWriter;

  import java.io.UnsupportedEncodingException;

  import java.net.SocketException;

  import org.apache.commons.net.ftp.FTP;

  import org.apache.commons.net.ftp.FTPClient;

  import org.apache.commons.net.ftp.FTPConnectionClosedException;

  import org.apache.commons.net.ftp.FTPFile;

  import org.apache.commons.net.ftp.FTPReply;

  public final class FtpTest {

  public static final void main(String[] args) {

  int base = 0;

  boolean storeFile = false, binaryTransfer = false, error = false;

  String server, username, password, remote, local;

  FTPClient ftp;

  server = "172.16.1.1";

  username = "public";

  password = "public";

  remote = "ht/isic-0.05.tar";

  local = "d:\\isic-0.05.tar";

  ftp = new FTPClient();

  ftp.addProtocolCommandListener(new PrintCommandListener(

  new PrintWriter(System.out)));

  //----------------新添加的----------------

  FTPClient ftest = new FTPClient();

  try {

  ftest.connect(server);

  ftest.login(username, password);

  FTPFile[] files = ftest.listFiles();

  System.out.println("输出ftp服务器上根目录下的文件或文件夹名字开始:\n");

  for (int i = 0; i < files.length; i++) {

  System.out.println(IsoToCh(files[i].getName()));

  }

  System.out.println("输出ftp服务器上根目录下的文件或文件夹名字结束。\n");

  } catch (SocketException e1) {

  // TODO 自动生成 catch 块

  e1.printStackTrace();

  } catch (IOException e1) {

  // TODO 自动生成 catch 块

  e1.printStackTrace();

  }

  //---------------------------------------------------

  try {

  int reply;

  ftp.connect(server);

  System.out.println("Connected to " + server + ".");

  // 尝试连接后,需要检验返回代码以验证是否连接成功

  reply = ftp.getReplyCode();

  if (!FTPReply.isPositiveCompletion(reply)) {

  ftp.disconnect();

  System.err.println("FTP server refused connection.");

  System.exit(1);

  }

  } catch (IOException e) {

  if (ftp.isConnected()) {

  try {

  ftp.disconnect();

  } catch (IOException f) {

  // do nothing

  }

  }

  System.err.println("Could not connect to server.");

  e.printStackTrace();

  System.exit(1);

  }

  __main: try {

  if (!ftp.login(username, password)) {

  ftp.logout();

  error = true;

  break __main;

  }

  System.out.println("Remote system is " + ftp.getSystemName());

  if (binaryTransfer)

  ftp.setFileType(FTP.BINARY_FILE_TYPE);

  // 默认状态下使用passive mode因为大多都在防火墙后面

  ftp.enterLocalPassiveMode();

  if (storeFile) {

  InputStream input;

  input = new FileInputStream(local);

  ftp.storeFile(remote, input);

  input.close();

  } else {

  OutputStream output;

  output = new FileOutputStream(local);

  ftp.retrieveFile(remote, output);

  output.close();

  }

  ftp.logout();

  } catch (FTPConnectionClosedException e) {

  error = true;

  System.err.println("Server closed connection.");

  e.printStackTrace();

  } catch (IOException

  e) {

  error = true;

  e.printStackTrace();

  } finally {

  if (ftp.isConnected()) {

  try {

  ftp.disconnect();

  } catch (IOException f) {

  // do nothing

  }

  }

  }

  System.exit(error ? 1 : 0);

  } // end main

  /**

  * iso8859_1转换为gb2312编码

  * @param param

  * @return

  */

  public static String IsoToCh(String param) {

  String temp = new String(param);

  //这里都需要new一下,否则websphere4.0不认。

  try {

  temp = new String(temp.getBytes("iso8859_1"), "gb2312");

  } catch (UnsupportedEncodingException e) {

  e.printStackTrace();

  }

  return temp;

  }

  }

来源:华军软件园
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网希赛网软件测试网中电华信太平洋电脑网天空网
    电脑爱好者泡泡网华军软件霏凡软件站软件开发网腾讯网
    eNet下载汉化新世纪小熊在线BIOS之家数动连线....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved