我需要有关使用Java编程将文件从一台服务器复制到另一台服务器的最佳方法的建议。仅当db表中不存在文件名时,我的程序才会复制文件。现在,我的程序将远程路径与表中的数据一一比较。如果要比较的文件很多,则需要很长时间。那么,什么是在不消耗大量时间的情况下正确完成此操作的最佳方法或方法呢?
我的代码示例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<environment>DEV</environment>
</systemPropertyVariables>
</configuration>
</plugin>
答案 0 :(得分:0)
您可以使用jsch
连接到远程路径。
JSch jsch = new JSch();
Session sshSession = jsch.getSession(username, host, port);
sshSession.setPassword(passwd);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
sshSession.setConfig(config);
sshSession.connect();
打开新的SFTP频道,访问您的路径并使用扩展名filer(例如* .csv)列出文件列表
ChannelSftp sftpChannel = (ChannelSftp) sshSession.openChannel("sftp");
sftpChannel.connect();
sftpChannel.cd(path);
Vector<LsEntry> fileList = sftpChannel.ls("*.csv");
然后,您可以将文件列表与表数据进行比较,然后再复制到目标。