Herr Apfel的专栏

玉不琢,不成器;人不学,不知道。是故古之王者,建国君民,教学为先。

赵根ID:herrapfel
106210次访问,排名809好友0人,关注者2
herrapfel的文章
原创 132 篇
翻译 0 篇
转载 14 篇
评论 51 篇
Herr Apfel的公告
庆祝个人 BLOG 开张
最近评论
dvdface:这种一堆API的方式还是嫌麻烦。最好的是能封装一下
vvukqr:wow power leveling
vvukqr:WoW Gold
qq77504166:哥们我用了你的方法,根本就不行啊??????
everyman1978:我一步一步的根据你的文章做,但执行下面的命令就不行了
jar umf MANIFEST.MF app.jar
说找不到app.jar,我把app.jar改成hello.jar后再运行,又说找不到MANIFEST.MF,我就在这个文件前加了一个目录(META-INF),
执行出现两个警告,并且后一句
java -jar hello.jar(执行)
文章分类
收藏
    相册
    My Photo
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 java实现FTP功能(源代码)收藏

    新一篇: 从JAR中读取GIF文件 | 旧一篇: 对logging类的认识

    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);
            }
    }

    发表于 @ 2005年06月24日 07:46:00|评论(loading...)|编辑

    新一篇: 从JAR中读取GIF文件 | 旧一篇: 对logging类的认识

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Herr Apfel