`
thunderbow
  • 浏览: 156734 次
  • 性别: Icon_minigender_1
  • 来自: beijing
社区版块
存档分类
最新评论

Java实现ftp功能

阅读更多

Java实现ftp功能源代码:

import sun.net.ftp.*; 
  import sun.net.*; 
  import java.awt.*; 
  import java.awt.event.*; 
  import java.applet.*; 
  import java.io.*; 

  public class FtpApplet extends Applet 
   { 
  FtpClient aftp; 
  DataOutputStream outputs ; 
  TelnetInputStream ins; 
  TelnetOutputStream outs; 
  TextArea lsArea; 
  Label    LblPrompt; 
  Button   BtnConn; 
  Button   BtnClose; 
  TextField  TxtUID; 
  TextField  TxtPWD; 
  TextField  TxtHost; 
  int ch; 
  public String a="没有连接主机"; 
        String hostname=""; 
  public void init () { 
  setBackground(Color.white); 
  setLayout(new GridBagLayout()); 
  GridBagConstraints GBC = new GridBagConstraints(); 
  LblPrompt = new Label("没有连接主机"); 
  LblPrompt.setAlignment(Label.LEFT); 
BtnConn = new Button("连接"); 
  BtnClose = new Button("断开"); 
  BtnClose.enable(false); 
  TxtUID = new TextField("",15); 
  TxtPWD = new TextField("",15); 

  TxtPWD.setEchoCharacter(’*’); 
  TxtHost = new TextField("",20); 
  Label LblUID = new Label("User ID:"); 
  Label LblPWD = new Label("PWD:"); 
  Label LblHost = new Label("Host:"); 

  lsArea = new TextArea(30,80); 
  lsArea.setEditable(false); 

  GBC.gridwidth= GridBagConstraints.REMAINDER; 
  GBC.fill     = GridBagConstraints.HORIZONTAL; 
  ((GridBagLayout)getLayout()).setConstraints(LblPrompt,GBC); 
  add(LblPrompt); 

  GBC.gridwidth=1; 
  ((GridBagLayout)getLayout()).setConstraints(LblHost,GBC); 
  add(LblHost); 
  GBC.gridwidth=GridBagConstraints.REMAINDER; 
  ((GridBagLayout)getLayout()).setConstraints(TxtHost,GBC); 
  add(TxtHost); 

  GBC.gridwidth=1; 
  ((GridBagLayout)getLayout()).setConstraints(LblUID,GBC); 
  add(LblUID); 
  GBC.gridwidth=1; 
  ((GridBagLayout)getLayout()).setConstraints(TxtUID,GBC); 
  add(TxtUID); 
GBC.gridwidth=1; 
  ((GridBagLayout)getLayout()).setConstraints(LblPWD,GBC); 
  add(LblPWD); 
  GBC.gridwidth=1; 
  ((GridBagLayout)getLayout()).setConstraints(TxtPWD,GBC); 
  add(TxtPWD); 

  GBC.gridwidth=1; 

  GBC.weightx=2; 
  ((GridBagLayout)getLayout()).setConstraints(BtnConn,GBC); 
  add(BtnConn); 
  GBC.gridwidth=GridBagConstraints.REMAINDER; 

  ((GridBagLayout)getLayout()).setConstraints(BtnClose,GBC); 
  add(BtnClose); 

  GBC.gridwidth=GridBagConstraints.REMAINDER; 
  GBC.fill     = GridBagConstraints.HORIZONTAL; 
  ((GridBagLayout)getLayout()).setConstraints(lsArea,GBC); 
  add(lsArea); 
          } 
 
  public boolean connect(String hostname, String uid,String pwd) 
  { 
                  this.hostname = hostname; 
  LblPrompt.setText("正在连接,请等待....."); 
  try{ 
    aftp =new FtpClient(hostname); 
    aftp.login(uid,pwd); 
    aftp.binary(); 
    showFileContents(); 
  } 
  catch(FtpLoginException e){ 
  a="无权限与主机:"+hostname+"连接!"; 
  LblPrompt.setText(a); 
  return false; 
  } 
  catch (IOException e){ 
  a="连接主机:"+hostname+"失败!"; 
  LblPrompt.setText(a); 
  return false; 
  } 
  catch(SecurityException e) 
  { 
  a="无权限与主机:"+hostname+"连接!"; 
  LblPrompt.setText(a); 
  return false; 
  } 
  LblPrompt.setText("连接主机:"+hostname+"成功!"); 
  return true; 
  } 
public void stop() 
  { 
  try 
  { 
  aftp.closeServer(); 
  } 
  catch(IOException e) 
  { 
  } 
  } 

  public void paint(Graphics g){ 
  } 


  public boolean action(Event evt,Object obj) 
  { 
  if (evt.target == BtnConn) 
  { 
  LblPrompt.setText("正在连接,请等待....."); 
  if (connect(TxtHost.getText(),TxtUID.getText(),TxtPWD.getText())) 
  { 
  BtnConn.setEnabled(false); 
  BtnClose.setEnabled(true); 
  } 
  return true; 
  } 
  if (evt.target == BtnClose) 
  { 
  stop(); 
  BtnConn.enable(true); 
  BtnClose.enable(false); 
  LblPrompt.setText("与主机"+hostname+"连接已断开!"); 
  return true; 
  } 
  return super.action(evt,obj); 
  } 
  public boolean sendFile(String filepathname){ 
  boolean result=true; 
  if (aftp != null) 
  { 
  LblPrompt.setText("正在粘贴文件,请耐心等待...."); 
String  contentperline; 
  try{ 
  a="粘贴成功!"; 
  String fg =new  String("\\"); 
  int index = filepathname.lastIndexOf(fg); 
String filename = filepathname.substring(index+1); 
  File localFile ; 
  localFile = new File(filepathname) ; 
  RandomAccessFile sendFile = new RandomAccessFile(filepathname,"r"); 
  // 
  sendFile.seek(0); 
  outs = aftp.put(filename); 
  outputs = new DataOutputStream(outs); 
  while (sendFile.getFilePointer() < sendFile.length() ) 
  { 
    ch = sendFile.read(); 
    outputs.write(ch); 
  } 
  outs.close(); 
  sendFile.close(); 
  } 
  catch(IOException e){ 
    a = "粘贴失败!"; 
    result = false ; 

  } 
  LblPrompt.setText(a); 
  showFileContents(); 
  } 
  else{ 
  result = false; 
  } 
  return result; 
  } 
public void showFileContents() 
  { 
  StringBuffer buf = new StringBuffer(); 
  lsArea.setText(""); 
  try 
  { 
  ins= aftp.list(); 
  while ((ch=ins.read())>=0){ 

    buf.append((char)ch); 
  } 
      lsArea.appendText(buf.toString()); 
  ins.close(); 
          } 
  catch(IOException e) 
  { 
  } 
  } 
          public static void main(String args[]){ 
               Frame f = new Frame("FTP Client"); 
               f.addWindowListener(new WindowAdapter(){ 
                 public void windowClosing(WindowEvent e){ 
                     System.exit(0); 
                 } 
  
               }); 
               FtpApplet ftp = new  FtpApplet(); 
               ftp.init(); 
               ftp.start(); 
               f.add(ftp); 
               f.pack(); 
               f.setVisible(true); 
          } 
  }

 

分享到:
评论

相关推荐

    java实现ftp功能

    根据提供的文件信息,我们可以总结出以下关于“Java实现FTP功能”的相关知识点: ### 1. FTP功能概述 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议。它支持基本的文件传输操作,如文件上传...

    Java实现FTP的上传下载功能

    总的来说,Java实现FTP功能涉及到网络通信、文件I/O以及GUI交互等多个方面,通过适当的库支持可以高效地完成文件的上传和下载任务。在实际开发中,还需要考虑错误处理、安全性、性能优化等更多因素。

    JAVA实现FTP协议中的服务器和客户端(完善版).rar

    这个"JAVA实现FTP协议中的服务器和客户端(完善版).rar"压缩包文件,显然包含了一个使用Java编程语言实现FTP协议的完整项目。以下是关于FTP协议、Java编程以及如何实现FTP服务器和客户端的关键知识点: 1. FTP协议...

    java实现FTP服务器

    ### Java实现FTP服务器的关键知识点 在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传...

    java_ftp.rar_FTP客户端 java_ftp_ftp java_java ftp_java_ftp

    在实际应用中,使用Java实现FTP功能的场景可能包括自动备份、文件同步、分布式系统之间的文件交换等。FTP客户端的实现通常涉及以下步骤: 1. 创建Socket连接到FTP服务器。 2. 登录到服务器,通过发送用户名和密码。 ...

    一个用java语言实现的ftp

    FTP(File Transfer Protocol)是一种用于在Internet上进行文件传输的标准协议,而用Java实现FTP功能,可以让我们在Java程序中方便地上传、下载和管理远程服务器上的文件。本文将深入探讨如何使用Java语言来实现FTP...

    java实现ftp自动上传文件

    Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步...总的来说,通过Java实现FTP自动上传文件涉及到网络通信、文件操作、日志处理等多个方面,理解这些概念对于Java开发者来说是非常重要的。

    JAVA 实现 FTP 客户端功能

    通过以上步骤,你可以使用Java实现一个基本的FTP客户端功能。在实际项目中,可以封装成服务类,提供易于使用的API供其他模块调用,提高代码的可读性和可维护性。同时,考虑到性能和安全性,应适当考虑使用SSL/TLS...

    java实现ftp的几种方式_java实现ftp的几种方式.doc

    总的来说,Java 实现 FTP 功能需要理解 FTP 协议的基本概念,选择合适的库,并熟练掌握客户端 API 的使用。在编写代码时,考虑到异常处理、性能优化以及安全性的需求,以提供稳定和高效的服务。

    java实现ftp上传jar包

    在Java中,我们可以使用多种库来实现FTP功能。 2. **Java FTP库**:在描述中提到了`edtftpj.jar`,这是一个Java FTP客户端库,提供了一种简单的方式来处理FTP连接和文件传输。另外,`commons-net-1.4.1.jar`是...

    山东大学计算机网络课程设计Java实现FTP的类似的功能

    下面我们将详细探讨Java实现FTP功能的关键知识点以及可能涉及的技术和概念。 首先,Java Socket编程是这个项目的核心部分。Java Socket是Java提供的用于网络通信的基础API,它允许应用程序通过TCP/IP协议在网络中...

    java实现FTP源代码.pdf

    总之,Java实现FTP功能主要涉及到使用`sun.net.ftp`包,结合Swing构建GUI,通过监听用户交互事件来驱动FTP操作。完整的实现会包含多个方法,每个方法对应FTP协议的一个特定功能,并且需要对可能出现的错误和异常进行...

    JAVA实现FTP协议中的服务器和客户端\\

    本文将深入探讨如何使用Java实现FTP协议中的服务器和客户端。通过学习这些知识点,开发者可以构建自己的FTP应用,进行文件的上传、下载和管理。 首先,我们要了解FTP协议的基本工作原理。FTP基于TCP/IP模型,通过...

    java实现ftp的所有操作

    本项目提供了一套完整的Java实现FTP操作的代码示例,包括上传、下载、删除服务器上的指定文件以及断点续传功能。以下是对这些功能的详细解释: 1. **FTP连接与登录**: 在进行任何FTP操作之前,首先需要建立一个...

    Java实现FTP批量大文件上传下载.pdf

    Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...

    用JAVA实现Ftp文件上传下载

    本文将深入探讨如何使用Java实现FTP文件上传和下载,包括基本概念、核心类库、实现步骤以及测试用例。 首先,Java通过`java.net`和`org.apache.commons.net.ftp`两个主要库支持FTP操作。`java.net`库中的`FTPClient...

    Java实现FTP文件上传和下载

    以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...

    java实现ftp

    Java 实现FTP是一种常见的网络编程任务,...总结来说,Java实现FTP功能涉及网络编程、文件I/O、FTP协议理解和使用第三方库等多个方面。在实际开发中,理解并熟练运用这些知识能够帮助我们高效、稳定地进行文件传输。

Global site tag (gtag.js) - Google Analytics