java做ftp程序学什么_JAVA学习(一)__操作FTP

//FFP初始化连接

public static void init(){

Properties config = new Properties();

try{

System.out.println("访问ftp.properties");

//读取配置文件

InputStream inputStream = FTPUtils.class.getClassLoader().getResourceAsStream("/ftp.properties");

config.load(inputStream);

//FTP服务器IP

serverIP = config.getProperty("ftp.serverName");

//FTP服务器端口

port = config.getProperty("ftp.port");

//FTP服务器用户名

userName = config.getProperty("ftp.userName");

//FTP服务器密码

password = config.getProperty("ftp.password");

//服务器名称。(这里组装的文件名,如:report_2013_02_01.csv)

FTPConst.REMORT_FILE_NAME = config.getProperty("ftp.reportDateFile")+getFtpDay()+".csv";

FTPConst.LOCAL_FILE_NAME = config.getProperty("local.reportDateFile")+getFtpDay()+".csv";

FTPConst.FTP_REPORT_FLOW_BROWSERS_FILE_NAME = config.getProperty("ftp.browsersMonthFile")+getFtpMonth()+".csv";

FTPConst.LOCAL_REPORT_FLOW_BROWSERS_FILE_NAME = config.getProperty("local.BrowsersMonthFile")+getFtpMonth()+".csv";

}catch(Exception e){

e.printStackTrace();

logger.error("ftp.properties加载失败:",e);

}

}

/**

* 获得BROWSERS报表的名称拼接信息,获得前一个月。如:现在2月。获得字符串为2012-01

* @return

*/

public static String getFtpMonth(){

Date date = new Date();

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.MONTH, -1);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

String dateStr = sdf.format(cal.getTime());

return dateStr;

}

/**

* 获得每日OMNITURE报表的名称拼接信息,获得前一日。如:现在为2013年02月22日。获得字符串为2013年02月21日

* @return

*/

public static String getFtpDay(){

Date date = new Date();

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.DAY_OF_MONTH, -1);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(cal.getTime());

//System.out.println(dateStr);

return dateStr;

}

/**

* 将FTP服务器文件下载到本地,返回本地文件。

* @param remoteFileName

* @param localFileName

* @return

*/

public static synchronized String downloadFile(String remoteFileName, String localFileName){

try{

File localFile = new File(localFileName);

//如果文件不存在。则创建此文件

if(!localFile.exists()){

localFile.createNewFile();

}else{

logger.info("创建文件已存在");

return localFileName;

}

OutputStream output = new FileOutputStream(localFile);

FTPClient client = new FTPClient();

client.connect(serverIP);

client.login(userName, password);

boolean flag = client.retrieveFile(remoteFileName, output);

client.logout();

if(flag){

return localFileName;

}else{

return null;

}

}catch(Exception e){

e.printStackTrace();

logger.error("omniture数据下载错误:",e);

return null;

}

}

/**

* 利用javacsv解析csv文件

* @param file

* @return

*/

private List javaCsv(String file){

try{

List omnitureList = new ArrayList();

CsvReader reader = new CsvReader(file, ',', Charset.forName("UTF-8"));

int i = 0;

while (reader.readRecord())

{

//跳过没用的行数。

if(i++ <= 15){

String[] str = reader.getValues();

System.out.println("数字编号:"+ (i-1) + str[0]);

continue;

}

//读取每行数据以数组形式返回

String[] str = reader.getValues();

OmnitureReportBean omniture = new OmnitureReportBean();

String timeStr = file.trim().substring(21, 28);

Date date = smipleDateFormat.parse(timeStr);

omniture.setStartTime(date);

omniture.setEndTime(date);

omniture.setBrowsers(str[0]);

omniture.setVisits(new Integer(str[1].replace(",", "").trim()));

omniture.setSearches(new Integer(str[2].replace(",", "").trim()));

omniture.setCardAdd(new Integer(str[3].replace(",", "").trim()));

omniture.setCheckOuts(new Integer(str[4].replace(",", "").trim()));

omniture.setPament(new Integer(str[5].replace(",", "").trim()));

omniture.setOrders(new Integer(str[6].replace(",", "").trim()));

omniture.setType(2);

omnitureList.add(omniture);

List list = this.omnitureDao.findOmnitureMonthList(omniture.getStartTime(),omniture.getBrowsers());

//若表里面已有该时间段的数据,则不重复插入本次csv中的数据

if(list!=null&&list.size()>0){

continue;

}else{

omnitureDao.saveOmniture(omniture);

}

}

return omnitureList;

}catch(Exception e){

e.printStackTrace();

return null;

}

}

/**

* 与当前日期比较。如早于当前时间返回true.否而返回false

* @param endDate

* @return

*/

public static boolean compareToDate(Date date){

Calendar cal1 = Calendar.getInstance();

Calendar cal2 = Calendar.getInstance();

Date nowDate = new Date();

cal1.setTime(date);

cal1.add(Calendar.HOUR_OF_DAY, 00);

cal1.add(Calendar.MINUTE, 00);

cal1.add(Calendar.SECOND, 00);

cal2.setTime(nowDate);

cal2.add(Calendar.HOUR_OF_DAY, 00);

cal2.add(Calendar.MINUTE, 00);

cal2.add(Calendar.SECOND, 00);

boolean flag = cal1.before(cal2);

if(flag){

//早于当前系统时间

return true;

}else{

//晚于当前系统时间

return false;

}

}

/**

* 删除服务器上的文件

* @param path

* @return

* @throws IOException

*/

public boolean delFile(String path) throws IOException {

boolean flag = false;

FTPClient client = new FTPClient();

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyMMdd");

String dateString = formatter.format(currentTime);

String fileName = "Report.csv";

try {

client.connect(serverIP);

client.login(userName, password);

client.enterLocalPassiveMode();

client.setFileType(FTP.BINARY_FILE_TYPE);

client.changeWorkingDirectory(path);

client.deleteFile(path + fileName);

flag = true;

logger.info("file:[" + path + fileName + "] is deleted on ftp:" + serverIP);

} catch (Exception e) {

flag = false;

} finally {

try {

client.disconnect();

} catch (IOException e) {

logger.info("disconnect FTP failed:" + e.getMessage());

}

}

return flag;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值