我必须从SFTP服务器读取一堆带有动态文件名的.CSV文件.这些文件每15分钟生成一次.
我正在使用JSch的ChannelSftp,但是没有方法可以提供确切的文件名.我只看到一种.ls()方法.这给出了例如Vector
[drwxr-xr-x 2 2019 2019 144 Aug 9 22:29 .,
drwx------ 6 2019 2019 176 Aug 27 2009 ..,
-rw-r--r-- 1 2019 2019 121 Aug 9 21:03 data_task1_2011_TEST.csv,
-rw-r--r-- 1 2019 2019 121 Aug 9 20:57 data_task1_20110809210007.csv]
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来读取目录中的所有文件并将它们复制到另一个位置?
此代码适用于复制单个文件:
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
channelSftp.get("data_task1_20110809210007.csv","data_task1_20110809210007.csv");
Run Code Online (Sandbox Code Playgroud) 在SOA中,如果一些DTO类具有一些重复的字段.使用Composition或Inheritance是否更好,所以没有重复或只使用一个封装所有字段的DTO类.随着我的DTO类的增长,我看到很多重复的字段名称和Sonar报告是哭泣的家禽.什么是最好的方法(或替代方案).
例如
public class DocDto{
private Long id;
private String name;
private String docType
}
public class DocReviewDto{
private Long id;
private String name;
private String status;
private String comment;
}
Run Code Online (Sandbox Code Playgroud) 我们目前使用Datastage ETL - 每天导出一个包含15个表(3种不同模式)数据的CSV /文本文件.
我想知道如果有一个更简单的方法来完成这个使用ETL.我试过Scriptella.它看起来很简单/快速,但它又是一个ETL.请建议..
String temp_date="07/28/2011 11:06:37 AM";
Date date = new Date(temp_date); //Depricated
SimpleDateFormat sdf = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss");
String comp_date= sdf.format(date);
System.out.println(comp_date);
Run Code Online (Sandbox Code Playgroud)
这有效,但如果我使用这样的东西
String temp_date="07/28/2011 11:06:37 AM";
try{
SimpleDateFormat sdf = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss");
Date comp_date= sdf.parse(temp_date);
System.out.println(comp_date);
}catch(Exception e){
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)
抛出此异常:
java.text.ParseException: Unparseable date: "07/28/2011 11:06:37 AM"
Run Code Online (Sandbox Code Playgroud)