您的位置:首页 > 数据库

定时从ftp上下载txt文件到数据库中

2018-01-11 15:09 381 查看
第一步:编写java代码

@Service("BaseDataTask")
public class BaseDataTask {
private static Logger logger = Logger.getLogger(BaseDataTask.class.getName());

@Resource
private TAreaMapper areaMapper;

private String ftpIP = "";// ftp地址
private String userName = "";// 用户名
private String userPwd = ""; // 密码
private int ftpPort = 21;// ftp端口号
FTPClient fc = null;//ftp对象
BufferedReader bufferedReader = null;
InputStream fget = null;
String fileName="";//文件名

public void BaseDataTask() {
downloadArea();//区域
}

public boolean downloadArea() {
boolean success = false;
try {
SimpleDateFormat fileDate = new SimpleDateFormat("yyyyMMdd");
String nowDate = fileDate.format(new Date());//当前日期
String newName="area_"+nowDate+".txt";//文件名
int reply;
fc = new FTPClient();// ftp客户端对象
fc.connect(ftpIP,ftpPort);// 连接ftp服务器
fc.login(userName, userPwd);// 登录ftp服务器
//判断登陆是否成功
reply = fc.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
fc.disconnect();
}
FTPFile[] fs = fc.listFiles();//ftp下的所有文件名称
for (FTPFile ftpfile : fs) { //遍历所有文件
fileName = ftpfile.getName();
if (fileName.equals(newName)) {
logger.info("********" + nowDate + ":开始下载区域信息数据!");
//logger.info("------------数据库操作---------");
String userID = "admin";
String read;//每一行数据
int lineNo = 1;//行数
String areaname = "";//区域名称
String fareaname = "";//所属上级区域名
TArea area = new TArea();
fget = fc.retrieveFileStream(newName);// 读取ftp远程文件数据
bufferedReader = new BufferedReader(new InputStreamReader(fget, "GB2312"));
bufferedReader.readLine();//先执行一次,除去标题的内容
lineNo++;
while ((read = bufferedReader.readLine()) != null) {
//这个里面就写数据库操作步骤
lineNo++;
}
logger.info("********" + nowDate + ":结束下载区域信息数据!");
success=true;
}
success = false;
}
// 退出登陆
fc.logout();
} catch (IOException e) {
try {
bufferedReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return success;

}

}
第二步:在spring配置文件头中添加命名空间及描述

xml代码:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
第三步:在spring配置文件中配置定时任务

xml代码:
<task:scheduler id="myScheduler" pool-size="5" />
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="BaseDataTask" method="BaseDataTask" cron="0 * 22 * * ?"/>
</task:scheduled-tasks>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp下载文件