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功能”的相关知识点: ### 1. FTP功能概述 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议。它支持基本的文件传输操作,如文件上传...
总的来说,Java实现FTP功能涉及到网络通信、文件I/O以及GUI交互等多个方面,通过适当的库支持可以高效地完成文件的上传和下载任务。在实际开发中,还需要考虑错误处理、安全性、性能优化等更多因素。
这个"JAVA实现FTP协议中的服务器和客户端(完善版).rar"压缩包文件,显然包含了一个使用Java编程语言实现FTP协议的完整项目。以下是关于FTP协议、Java编程以及如何实现FTP服务器和客户端的关键知识点: 1. FTP协议...
### Java实现FTP服务器的关键知识点 在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传...
在实际应用中,使用Java实现FTP功能的场景可能包括自动备份、文件同步、分布式系统之间的文件交换等。FTP客户端的实现通常涉及以下步骤: 1. 创建Socket连接到FTP服务器。 2. 登录到服务器,通过发送用户名和密码。 ...
FTP(File Transfer Protocol)是一种用于在Internet上进行文件传输的标准协议,而用Java实现FTP功能,可以让我们在Java程序中方便地上传、下载和管理远程服务器上的文件。本文将深入探讨如何使用Java语言来实现FTP...
Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步...总的来说,通过Java实现FTP自动上传文件涉及到网络通信、文件操作、日志处理等多个方面,理解这些概念对于Java开发者来说是非常重要的。
通过以上步骤,你可以使用Java实现一个基本的FTP客户端功能。在实际项目中,可以封装成服务类,提供易于使用的API供其他模块调用,提高代码的可读性和可维护性。同时,考虑到性能和安全性,应适当考虑使用SSL/TLS...
总的来说,Java 实现 FTP 功能需要理解 FTP 协议的基本概念,选择合适的库,并熟练掌握客户端 API 的使用。在编写代码时,考虑到异常处理、性能优化以及安全性的需求,以提供稳定和高效的服务。
在Java中,我们可以使用多种库来实现FTP功能。 2. **Java FTP库**:在描述中提到了`edtftpj.jar`,这是一个Java FTP客户端库,提供了一种简单的方式来处理FTP连接和文件传输。另外,`commons-net-1.4.1.jar`是...
下面我们将详细探讨Java实现FTP功能的关键知识点以及可能涉及的技术和概念。 首先,Java Socket编程是这个项目的核心部分。Java Socket是Java提供的用于网络通信的基础API,它允许应用程序通过TCP/IP协议在网络中...
总之,Java实现FTP功能主要涉及到使用`sun.net.ftp`包,结合Swing构建GUI,通过监听用户交互事件来驱动FTP操作。完整的实现会包含多个方法,每个方法对应FTP协议的一个特定功能,并且需要对可能出现的错误和异常进行...
本文将深入探讨如何使用Java实现FTP协议中的服务器和客户端。通过学习这些知识点,开发者可以构建自己的FTP应用,进行文件的上传、下载和管理。 首先,我们要了解FTP协议的基本工作原理。FTP基于TCP/IP模型,通过...
本项目提供了一套完整的Java实现FTP操作的代码示例,包括上传、下载、删除服务器上的指定文件以及断点续传功能。以下是对这些功能的详细解释: 1. **FTP连接与登录**: 在进行任何FTP操作之前,首先需要建立一个...
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...
本文将深入探讨如何使用Java实现FTP文件上传和下载,包括基本概念、核心类库、实现步骤以及测试用例。 首先,Java通过`java.net`和`org.apache.commons.net.ftp`两个主要库支持FTP操作。`java.net`库中的`FTPClient...
Java 实现FTP是一种常见的网络编程任务,...总结来说,Java实现FTP功能涉及网络编程、文件I/O、FTP协议理解和使用第三方库等多个方面。在实际开发中,理解并熟练运用这些知识能够帮助我们高效、稳定地进行文件传输。