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

📄 java实现ftp功能.txt

📁 Java实现ftp功能(源程序)
💻 TXT
字号:
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 + -