jdk1.7 FtpClient应用
更新时间:2023-11-12 18:52:01 阅读量: 教育文库 文档下载
sun.net.ftp.FtpClient 这个类在jdk的帮助文档中没有具体的说明,也就是并没有对外公开。并且这个类是在jdk的 rt.jar中实现的。
jdk1.7中其构造函数FtpClient()被定义为private类型,所以无法new了。 所以在jdk1.7中new FtpClient()就会 报错 cannot instantiate the type FtpClient
在jdk1.7,已经换成了 FtpClient.create(ip)方法 同时,其他的一些方法也基本都改掉了, 如 ftpClient.openServer(server); ftpClient.login(user, password);
就可以换成:ftpClient.login(user, null, password); ftpClient.binary(); ---> ftpClient.setBinaryType();
ftpClient.put(remotefilename);--->ftpClient.putFileStream(remotefilename, true); 等。
FTPUtil.Java
package com.ftp;
import java.io.File;
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress; import java.net.SocketAddress; import sun.net.ftp.FtpClient;
import sun.net.ftp.FtpProtocolException;
public class FTPUtil { /**
* 连接ftp服务器 JDK 1.7 *
* @param url * @param port
* @param username * @param password * @return FtpClient
* @throws FtpProtocolException * @throws IOException */
public static FtpClient connectFTP(String url, int port, String username, String password) { // 创建ftp FtpClient ftp = null; try {
// 创建地址
SocketAddress addr = new InetSocketAddress(url, port); // 连接
ftp = FtpClient.create(); ftp.connect(addr);
// 登陆
ftp.login(username, password.toCharArray()); ftp.setBinaryType();
System.out.println(ftp.getWelcomeMsg()); } catch (FtpProtocolException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); }
return ftp; }
/**
* 切换目录 *
* @param ftp * @param path */
public static void changeDirectory(FtpClient ftp, String path) { try {
ftp.changeDirectory(path);
System.out.println(ftp.getWorkingDirectory()); } catch (FtpProtocolException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } }
/**
* 关闭ftp *
* @param ftp */
public static void disconnectFTP(FtpClient ftp) { try {
ftp.close();
System.out.println(\ } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } }
/**
* 上传文件 *
* @param localFile * @param ftpFile * @param ftp */
public static void upload(String localFile, String ftpFile, FtpClient ftp) { OutputStream os = null; FileInputStream fis = null; try {
// 将ftp文件加入输出流中。输出到ftp上 os = ftp.putFileStream(ftpFile);
File file = new File(localFile);
// 创建一个缓冲区
fis = new FileInputStream(file); byte[] bytes = new byte[1024]; int c;
while ((c = fis.read(bytes)) != -1) { os.write(bytes, 0, c); }
System.out.println(\ } catch (FtpProtocolException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } finally { try {
if (os != null) os.close(); if (fis != null) fis.close(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } } }
/**
* 文件下载 *
* @param localFile * @param ftpFile * @param ftp */
public static void download(String localFile, String ftpFile, FtpClient ftp) { InputStream is = null;
FileOutputStream fos = null; try {
// 获取ftp上的文件
is = ftp.getFileStream(ftpFile); File file = new File(localFile); byte[] bytes = new byte[1024]; int i;
fos = new FileOutputStream(file); while ((i = is.read(bytes)) != -1) { fos.write(bytes, 0, i); }
System.out.println(\ } catch (FtpProtocolException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } finally { try {
if (fos != null) fos.close(); if (is != null) { is.close(); }
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } } } }
Test.java
package test;
import java.net.InetAddress;
import java.net.UnknownHostException; import sun.net.ftp.FtpClient; import com.ftp.FTPUtil;
public class Test {
public static void main(String[] args) { try {
InetAddress addr = InetAddress.getLocalHost(); System.out.println(addr.getHostAddress()); } catch (UnknownHostException e) {
// TODO Auto-generated catch block e.printStackTrace(); }
String ip = \ int port = 21;
String username = \ String password = \ String path = \
// 连接ftp
FtpClient ftp = FTPUtil.connectFTP(ip, port, username, password); System.out.println(ftp.getWelcomeMsg()); // 切换目录
FTPUtil.changeDirectory(ftp, path);
System.out.println(\上传----\
FTPUtil.upload(\ System.out.println(\下载----\
FTPUtil.download(\ } }
正在阅读:
jdk1.7 FtpClient应用11-12
学生综合素质评价表04-14
2019年西南大学马克思主义学院838思想政治教育基本理论考研仿真模拟五套题05-04
初中语文学问和智慧(导学案)06-25
关于档案、户口的注意事项03-19
2015年度河南省优秀工程勘察设计行业奖05-02
新媒体概论复习资料09-12
公司党委意识形态工作责任制(实施细则+实施方案+责任清单)02-25
电梯安装监理细则05-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- FtpClient
- 应用
- jdk
- 1.7
- 高大模板支撑系统监理实施细则
- PHY以太网寄存器解析
- 使用AVRStudio设置AVR熔丝位及烧写程序
- 《行政法学》第07章在线测试试题及满分参考答案
- XX县关于上市企业工作情况的汇报
- 家畜传染病学教学实习
- 浅谈提高钳工平面锉削技能的方法
- 基因在染色体上 伴性遗传一轮复习教学案(教师版)
- CAD期末考试复习资料
- 2016税收法律制度考题综合试题(附答案)
- 分析化学所有答案
- 2018一建《工程经济》章节习题:建筑安装工程费用项目的组成与计算
- 上海大学数学分析历年考研真题
- 2016 年咨询师继续教育工程项目资源节约利用分析评价方法试卷及答案86分
- 人力资源管理常见问题及解决方案
- 2009年5月国家二级理财规划师考试综合评审试题及答案
- 成立首届业主委员会会议记录
- 系统工程师笔试题
- 农网改造升级工程标准化建设手册 - 图文
- 密云县人民政府办公室关于成立北京科技成果转化(密云)示范基地项目领导小组的通知