首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
自动扫描FTP文件工具类 ScanFtp.java
时间:
2016-01-29 16:00:08
阅读:
240
评论:
0
收藏:
0
[点我收藏+]
标签:
package com.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 自动扫描FTP文件工具类
* 需要定时执行
*/
public
class ScanFtp {
//服务器图片路径文件夹
private String serverLocal =
"D:/TOOLS/Tomcat 6.0/webapps/BCCCSM/modelforcast/";
//图片上传文件夹存放路径,文件夹内应包含AGCM CSM ZS 3个子文件夹分别存放需要扫描到tomcat中的图片
private String saveLocal =
"D:/modelForcast/";
/**
* 获得远程权限
* @return
*/
private
void getFTPAdress(){
//登陆成功
}
/**
* 开始扫描
* @throws IOException
*/
private
void scan()
throws IOException {
this.getFTPAdress();
File file =
new File(saveLocal +
"AGCM");
//打开AGCM
File[] array = file.listFiles();
String fileName;
File fileTemp;
for(
int i =
0; i < array.length; i++){
if(array[i].isFile()) {
fileTemp = array[i];
fileName = fileTemp.getName();
//取出文件名
if (!fileName.equals(
"humbs.db")) {
this.saveFile(fileTemp,
1);
//分析每一个文件名字并存储
System.out.println(fileName +
" saved");
}
}
}
file =
new File(saveLocal +
"CSM");
//打开CSM
array = file.listFiles();
for(
int i =
0; i < array.length; i++){
if(array[i].isFile()) {
fileTemp = array[i];
fileName = fileTemp.getName();
//取出文件名
if (!fileName.equals(
"humbs.db")) {
this.saveFile(fileTemp,
2);
//分析每一个文件名字并存储
System.out.println(fileName +
" saved");
}
}
}
file =
new File(saveLocal +
"ZS");
//打开ZS
array = file.listFiles();
for(
int i =
0; i < array.length; i++){
if(array[i].isFile()) {
fileTemp = array[i];
fileName = fileTemp.getName();
//取出文件名
if (!fileName.equals(
"humbs.db")) {
this.saveFile(fileTemp,
3);
//分析每一个文件名字并存储
System.out.println(fileName +
" saved");
}
}
}
}
/**
* 开始执行
* @throws IOException
*/
public
void execute()
throws IOException{
scan();
//开始扫描
}
/**
* 按类型存储
* @param file
* @param type
* @throws IOException
*/
private
void saveFile(File file,
int type)
throws IOException {
String fileName = file.getName();
//类型A C 和 指数3种
String year = fileName.substring(
1,
5);
//获得发布年份
String date = fileName.substring(
5,
9);
//获得发布日期包含月日
String var =
null;
//获得变量名字
String dir = serverLocal;
//存储目录名字
if (type ==
1 ) {
var = fileName.substring(
11,
15);
dir = dir +
"AGCM/" + var +
"/" + year +
"/" + date;
}
else
if(type ==
2) {
var = fileName.substring(
11,
15);
dir = dir +
"CSM/" + var +
"/" + year +
"/" + date;
}
else {
var = fileName.substring(
11,
15);
//指数的暂时没处理
dir = dir +
"ZS/" + var +
"/" + year +
"/" + date;
}
//判断是否存在这样的目录没有就自动创建
File savePath =
new File(dir);
if(!savePath.exists()) {
savePath.mkdirs();
}
File saveFile =
new File(dir +
"/" + fileName);
if(!saveFile.exists()){
//如果不存在,就存文件
FileInputStream fis =
null;
//这里用本地复制暂时代替FTP
FileOutputStream fos =
null;
BufferedInputStream bis =
null;
BufferedOutputStream bos =
null;
int c;
fis =
new FileInputStream(file);
bis =
new BufferedInputStream(fis);
fos =
new FileOutputStream(dir +
"/" + fileName);
bos =
new BufferedOutputStream(fos);
while((c = bis.read())!= -
1)
bos.write(c);
bos.flush();
if(bos !=
null) bos.close();
if(bis !=
null) bis.close();
if(fos !=
null) fos.close();
if(fis !=
null) fos.close();
}
else {
System.out.println(
"文件已经存在,不进行存储,可清理当前文件.");
}
}
/**
* 测试方法
* @param argv
* @throws IOException
*/
public
static
void main(String argv[]) {
ScanFtp s =
new ScanFtp();
try {
s.scan();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
自动扫描FTP文件工具类 ScanFtp.java
标签:
原文地址:http://www.cnblogs.com/swite/p/5168734.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!