自动扫描FTP文件工具类 ScanFtp.java
- 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的更多相关文章
- 读取Config文件工具类 PropertiesConfig.java
package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- Java 实现删除文件工具类
工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...
- Java常用工具类---IP工具类、File文件工具类
package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...
- java文件工具类
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- java下载文件工具类
java下载文件工具类 package com.skjd.util; import java.io.BufferedInputStream; import java.io.BufferedOutput ...
- Property工具类,Properties文件工具类,PropertiesUtils工具类
Property工具类,Properties文件工具类,PropertiesUtils工具类 >>>>>>>>>>>>>& ...
- Android FileUtil(android文件工具类)
android开发和Java开发差不了多少,也会有许多相同的功能.像本文提到的文件存储,在Java项目和android项目里面用到都是相同的.只是android开发的一些路径做了相应的处理. 下面就是 ...
- HTTP 下载文件工具类
ResponseUtils.java package javax.utils; import java.io.ByteArrayInputStream; import java.io.File; im ...
随机推荐
- exit(-1)或者return(-1)为什么shell得到的退出码是255?
写一段hello world: // filename: main.c #include <stdio.h> int main(void) { printf("hello wol ...
- Google Analytics SEO 实时 网站 访问量 统计
/*************************************************************************** * Google Analytics SEO ...
- setTimeout方法
//不建议传递字符串 setTimeout(alert("hello"),1000); //推荐调用方式 setTimeout(function(){alert("hel ...
- The u32 classifier
The u32 classifier The U32 filter is the most advanced filter available in the current implementatio ...
- genome file format
Some of the bedtools (e.g., genomeCoverageBed,complementBed, slopBed) need to know the size of the c ...
- html部分---样式表,选择器;
<1.内联样式,优点:控制精确,缺点:代码重用性差,页面代码乱.> <div style="background-color:#0F0"></div& ...
- CentOS搭建Httpd Pyhton3 Django环境
系统环境 centos-6-x86 系统自带httpd 编译安装Python3 pip3 参考 http://www.cnblogs.com/vawter/p/6254170.html 编译安装wsg ...
- LNMP环境搭建(discuz论坛)
一.操作系统级环境及软件版本 操作系统:CentOS release 6.5 (Final)minimal 内核版本:2.6.32-431.el6.x86_64 MySQL版本:MySQL-5.6.2 ...
- Java基础相关
对老师上课内容进行总结: 1.新建一个Java项目,并命名为HelloWorld 然后再新建类,并命名为HelloWorld,注意红色画圈部分 若勾选,则新建类开头为(“//后的内容为老师所讲批注”) ...
- 《苹果开发之Cocoa编程》键-值编码和键-值观察
一.KVC 键-值编码(Key - Value Coding, KVC)是通过变量名的读取和设置变量值的一种方法,将字符串的变量名作为key来引用.NSObject定义了两个方法(KVC方法)用于变量 ...