FTP网络文件传输.docx

上传人:b****5 文档编号:28945639 上传时间:2023-07-20 格式:DOCX 页数:25 大小:21.05KB
下载 相关 举报
FTP网络文件传输.docx_第1页
第1页 / 共25页
FTP网络文件传输.docx_第2页
第2页 / 共25页
FTP网络文件传输.docx_第3页
第3页 / 共25页
FTP网络文件传输.docx_第4页
第4页 / 共25页
FTP网络文件传输.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

FTP网络文件传输.docx

《FTP网络文件传输.docx》由会员分享,可在线阅读,更多相关《FTP网络文件传输.docx(25页珍藏版)》请在冰豆网上搜索。

FTP网络文件传输.docx

FTP网络文件传输

窗体顶端

 FTP网络文件传输收藏

 | 旧一篇:

 多线程技术下载文件

     需要用到JAVAAPI提供的FtpClient,TelnetInputStream,RandomAccessFile等几个类.

(1)FtpClient类负责客户端与服务器端的通讯,实现了客户端FTP传输的功能.

(2)TelnetInputStream类负责辅助完成FTP的传输,是一种输入流类(3)RandomAccessFile类文件随机访问下面实现一个FTP客户端程序,用来下载FTP服务端的文件,实现步骤如下:

(1)输入服务器名以及用于登录的用户名和密码,登录FTP服务器

(2)登录成功后,列出服务器端的目录和文件名(3)选择要下载的文件和存储的本机目录完成文件下载创建一个包含main()方法的客户端FtpClientFrame类

viewplaincopytoclipboardprint?

1.package ftpclient;  

2.  

3.import java.awt.*;  

4.  

5.import java.awt.event.*;  

6.  

7.import javax.swing.*;  

8.  

9.import .ftp.*;  

10.  

11.import .*;  

12.  

13.import java.io.*;  

14.  

15.  

16.  

17.public class FtpClientFrame extends JFrame{  

18.  

19.    JPanel contentPane;  

20.  

21.    Label labelPrompt=new Label();  

22.  

23.    Label labelHost=new Label();  

24.  

25.    TextField textFieldHost=new TextField();  

26.  

27.    Label labelUser=new Label();  

28.  

29.    TextField textFieldUser=new TextField();  

30.  

31.    Label labelPassword=new Label();  

32.  

33.    TextField textFieldPassword=new TextField();  

34.  

35.    Button buttonLink=new Button();  

36.  

37.    Button buttonDisconnect=new Button();  

38.  

39.    Label labelFileShow=new Label();  

40.  

41.    TextArea textAreaContent=new TextArea();  

42.  

43.    Label labelFile=new Label();  

44.  

45.    TextField textFieldFile=new TextField();  

46.  

47.    Label labelDir=new Label();  

48.  

49.    TextField textFieldDir=new TextField();  

50.  

51.    Button buttonDownload=new Button();  

52.  

53.    FtpClient myFtp=null;  

54.  

55.    TelnetInputStream inStream=null;  

56.  

57.      

58.  

59.    public FtpClientFrame(){  

60.  

61.        try{  

62.  

63.            jbInit();  

64.  

65.        }  

66.  

67.        catch(Exception e){  

68.  

69.            e.printStackTrace();  

70.  

71.        }  

72.  

73.    }  

74.  

75.      

76.  

77.    private void jbInit() throws Exception{  

78.  

79.        contentPane=(JPanel)this.getContentPane();  

80.  

81.        contentPane.setLayout(null);  

82.  

83.        labelPrompt.setBounds(new Rectangle(25,6,180,22));  

84.  

85.        labelHost.setText("主机名");  

86.  

87.        labelHost.setBounds(new Rectangle(25,38,50,22));  

88.  

89.        textFieldHost.setBounds(new Rectangle(78,38,280,22));  

90.  

91.        labelUser.setText("用户名");  

92.  

93.        labelUser.setBounds(new Rectangle(25,70,50,22));  

94.  

95.        textFieldUser.setBounds(new Rectangle(78,70,114,22));  

96.  

97.        labelPassword.setText("密码:

");  

98.  

99.        labelPassword.setBounds(new Rectangle(205,70,37,22));  

100.  

101.        textFieldPassword.setBounds(new Rectangle(244,70,114,22));  

102.  

103.        textFieldPassword.setEchoChar('*');  

104.  

105.        buttonLink.setLabel("连接");  

106.  

107.        buttonLink.setBounds(new Rectangle(375,38,70,22));  

108.  

109.        buttonLink.addActionListener(new ActionListener(){  

110.  

111.            public void actionPerformed(ActionEvent e){  

112.  

113.                buttonLink_actionPerformed(e);  

114.  

115.            }  

116.  

117.        });  

118.  

119.        buttonLink.setEnabled(true);  

120.  

121.        buttonDisconnect.setLabel("断开");  

122.  

123.        buttonDisconnect.setBounds(new Rectangle(375,70,70,22));  

124.  

125.        buttonDisconnect.addActionListener(new ActionListener(){  

126.  

127.            public void actionPerformed(ActionEvent e){  

128.  

129.                buttonDisconnect_actionPerformed(e);  

130.  

131.            }  

132.  

133.        });  

134.  

135.        buttonDisconnect.setEnabled(false);  

136.  

137.        labelFileShow.setText("目录列表");  

138.  

139.        labelFileShow.setBounds(new Rectangle(25,105,140,22));  

140.  

141.        textAreaContent.setBounds(new Rectangle(25,135,420,235));  

142.  

143.        textAreaContent.setEditable(false);  

144.  

145.        labelFile.setText("欲下载的文件");  

146.  

147.        labelFile.setBounds(new Rectangle(25,380,100,22));  

148.  

149.        textFieldFile.setBounds(new Rectangle(128,380,230,22));  

150.  

151.        labelDir.setText("存放文件的路径");  

152.  

153.        labelDir.setBounds(new Rectangle(25,412,100,22));  

154.  

155.        textFieldDir.setBounds(new Rectangle(1285,412,230,22));  

156.  

157.        buttonDownload.setLabel("下载");  

158.  

159.        buttonDownload.setBounds(new Rectangle(375,412,70,22));  

160.  

161.        buttonDownload.addActionListener(new ActionListener(){  

162.  

163.            public void actionPerformed(ActionEvent e){  

164.  

165.                buttonDownload_actionPerformed(e);  

166.  

167.            }  

168.  

169.        });  

170.  

171.        buttonDownload.setEnabled(false);  

172.  

173.        contentPane.add(labelPrompt,null);  

174.  

175.        contentPane.add(labelHost,null);  

176.  

177.        contentPane.add(textFieldHost,null);  

178.  

179.        contentPane.add(labelUser,null);  

180.  

181.        contentPane.add(textFieldUser,null);  

182.  

183.        contentPane.add(labelPassword,null);  

184.  

185.        contentPane.add(textFieldPassword,null);  

186.  

187.        contentPane.add(buttonLink,null);  

188.  

189.        contentPane.add(buttonDisconnect,null);  

190.  

191.        contentPane.add(labelFileShow,null);  

192.  

193.        contentPane.add(textAreaContent,null);  

194.  

195.        contentPane.add(textFieldFile,null);  

196.  

197.        contentPane.add(labelFile,null);  

198.  

199.        contentPane.add(labelDir,null);  

200.  

201.        contentPane.add(textFieldDir,null);  

202.  

203.        contentPane.add(buttonDownload,null);  

204.  

205.        enableEvents(AWTEvent.WINDOW_EVENT_MASK);  

206.  

207.        this.setSize(new Dimension(480,485));  

208.  

209.        this.setResizable(false);  

210.  

211.        this.setTitle("ftp客户端");  

212.  

213.        this.setVisible(true);  

214.  

215.    }  

216.  

217.      

218.  

219.    void buttonLink_actionPerformed(ActionEvent e){  

220.  

221.        String hostname=textFieldHost.getText();  

222.  

223.        labelPrompt.setText("正在连接...");  

224.  

225.        try{  

226.  

227.            myFtp=new FtpClient(hostname);  

228.  

229.            myFtp.login(textFieldUser.getText(), textFieldPassword.getText());  

230.  

231.            myFtp.binary();  

232.  

233.            showFileContents();  

234.  

235.        }  

236.  

237.        catch(FtpLoginException e1){  

238.  

239.            String strPrompt="用户名密码错误";  

240.  

241.            labelPrompt.setText(strPrompt);  

242.  

243.        }  

244.  

245.        catch(IOException e1){  

246.  

247.            String strPrompt="连接主机"+hostname+"失败";  

248.  

249.            labelPrompt.setText(strPrompt);  

250.  

251.        }  

252.  

253.        catch(SecurityException e1){  

254.  

255.            String strPrompt="无权限与主机:

"+hostname+"连接";  

256.  

257.            labelPrompt.setText(strPrompt);  

258.  

259.        }  

260.  

261.        labelPrompt.setText("连接主机:

"+hostname+"成功");  

262.  

263.        buttonDisconnect.setEnabled(true);  

264.  

265.        buttonDownload.setEnabled(true);  

266.  

267.        buttonLink.setEnabled(false);  

268.  

269.    }  

270.  

271.      

272.  

273.    void buttonDisconnect_actionPerformed(ActionEvent e){  

274.  

275.        try{  

276.  

277.            myFtp.closeServer();  

278.  

279.            textAreaContent.setText("");  

280.  

281.            labelPrompt.setText("与主机断开");  

282.  

283.        }  

284.  

285.        catch(IOException e1){  

286.  

287.            System.out.println("Error:

 "+e1);  

288.  

289.        }  

290.  

291.        buttonLink.setEnabled(true);  

292.  

293.        buttonDownload.setEnabled(false);  

294.  

295.        buttonDisconnect.setEnabled(false);  

296.  

297.    }  

298.  

299.      

300.  

301.    public void showFileContents(){  

302.  

303.        int ch;  

304.  

305.        StringBuffer  buf=new StringBuffer();  

306.  

307.        try{  

308.  

309.            inStream=myFtp.list();  

310.  

311.            while((ch=inStream.read())>=0){  

312.  

313.                buf.append((char)ch);  

314.  

315.            }  

316.  

317.            textAreaContent.append(buf.toString());  

318.  

319.            inStream.close();  

320.  

321.        }  

322.  

323.        catch(Exception e){  

324.  

325.            System.out.println("Error:

 "+e);  

326.  

327.        }  

328.  

329.    }  

330.  

331.      

332.  

333.    void buttonDownload_actionPerformed(ActionEvent e){  

334.  

335.        int ch;  

336.  

337.        StringBuffer buf=new StringBuffer();  

338.  

339.        buf.setLength(0);  

340.  

341.        try{  

342.  

343.            File dir=new File(textFieldDir.getText());  

344.  

345.            File f=new File(dir,textFieldFile.getText());  

346.  

347.            RandomAccessFile file=new RandomAccessFile(f,"rw");  

348.  

349.            inStream=myFtp.get(textFieldFile.getText());  

350.  

351.            while((ch=inStream.read())>=0){  

352.  

353.                buf.append((char)ch);  

354.  

355.     

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1