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

📄 ftpapplet.java

📁 一个Java例子
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   FtpApplet.java

package jdeveloper.ftp;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
import sun.net.ftp.FtpLoginException;

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 FtpApplet()
    {
        a = "没有连接主机";
        hostname = "";
    }

    public void init()
    {
        setBackground(Color.white);
        setLayout(new GridBagLayout());
        GridBagConstraints GBC = new GridBagConstraints();
        LblPrompt = new Label("没有连接主机");
        LblPrompt.setAlignment(0);
        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 = 0;
        GBC.fill = 2;
        ((GridBagLayout)getLayout()).setConstraints(LblPrompt, GBC);
        add(LblPrompt);
        GBC.gridwidth = 1;
        ((GridBagLayout)getLayout()).setConstraints(LblHost, GBC);
        add(LblHost);
        GBC.gridwidth = 0;
        ((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 = 2D;
        ((GridBagLayout)getLayout()).setConstraints(BtnConn, GBC);
        add(BtnConn);
        GBC.gridwidth = 0;
        ((GridBagLayout)getLayout()).setConstraints(BtnClose, GBC);
        add(BtnClose);
        GBC.gridwidth = 0;
        GBC.fill = 2;
        ((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 = String.valueOf((new StringBuffer("无权限与主机:")).append(hostname).append("连接!"));
            LblPrompt.setText(a);
            boolean flag = false;
            return flag;
        }
        catch(IOException e)
        {
            a = String.valueOf((new StringBuffer("连接主机:")).append(hostname).append("失败!"));
            LblPrompt.setText(a);
            boolean flag1 = false;
            return flag1;
        }
        catch(SecurityException e)
        {
            a = String.valueOf((new StringBuffer("无权限与主机:")).append(hostname).append("连接!"));
            LblPrompt.setText(a);
            boolean flag2 = false;
            return flag2;
        }
        LblPrompt.setText(String.valueOf((new StringBuffer("连接主机:")).append(hostname).append("成功!")));
        return true;
    }

    public void stop()
    {
        try
        {
            aftp.closeServer();
        }
        catch(IOException ioexception) { }
    }

    public void paint(Graphics g1)
    {
    }

    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(String.valueOf((new StringBuffer("与主机")).append(hostname).append("连接已断开!")));
            return true;
        } else
        {
            return super.action(evt, obj);
        }
    }

    public boolean sendFile(String filepathname)
    {
        boolean result = true;
        if(aftp != null)
        {
            LblPrompt.setText("正在粘贴文件,请耐心等待....");
            try
            {
                a = "粘贴成功!";
                String fg = new String("\\");
                int index = filepathname.lastIndexOf(fg);
                String filename = filepathname.substring(index + 1);
                File localFile = new File(filepathname);
                RandomAccessFile sendFile = new RandomAccessFile(filepathname, "r");
                sendFile.seek(0L);
                outs = aftp.put(filename);
                outputs = new DataOutputStream(outs);
                for(; sendFile.getFilePointer() < sendFile.length(); outputs.write(ch))
                    ch = sendFile.read();

                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 ioexception) { }
    }

    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 + -