1回顶部 Java实现ftp功能源代码: import sun.net.ftp.*; 2回顶部 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); 3回顶部 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; } 4回顶部 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("正在粘贴文件,请耐心等待...."); 5回顶部 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; } 6回顶部 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功能Java实现ftp功能
2004-04-05 14:41
出处:Javajia
责任编辑:sdq