⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java源码:实现简单的ftp功能.txt

📁 学习(编程技巧_编程知识_程序代码),是学习编程不可多得的学习精验
💻 TXT
字号:
Java源码:实现简单的FTP功能
 

--------------------------------------------------------------------------------
 
第八军团 时间:2004-1-23 15:42:49 
   
applet代码如下:
<APPLET
  CODEBASE = "."
  CODE     = "jdeveloper.ftp.FtpApplet.class"  
  NAME     = "TestApplet"
  WIDTH    = 500
  HEIGHT   = 600
  HSPACE   = 0
  VSPACE   = 0
  ALIGN    = middle
>
<br>
</APPLET>
 
--------------------------------------------------------------------------------
JAVA源代码如下:
--------------------------------------------------------------------------------
package jdeveloper.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);
        }
}


 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -