(本文纯属是在工作中笔记,只是实现了基本的操作,在遍历数据去重复的那块代码写的不怎么好,数据量大了很耗时(需要大家自己实现),建议使用c3p0-0.9.5.2.bin第三方库进行管理数据库与服务器的频繁连接,有不妥的地方请大家多多包涵........
SFTP概念:
是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
SFTP需要的jar包:
由于jar包无法上传把需要所需要的jar包名称在这里标注好了点击这里进行下载对应的jar包,
不会下载的小伙伴附上教程。
SFTP上文件代码:
package text;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import com.jcraft.jsch.ChannelSftp;
/**
*
* @author 文件上传
*
*/
public class SFTPTest {
public SFTPChannel getSFTPChannel() {
return new SFTPChannel();
}
public static void main(String[] args) throws Exception {
SFTPTest test = new SFTPTest();
Map<String, String> sftpDetails = new HashMap<String, String>();
// 设置主机ip,端口,用户名,密码
sftpDetails.put(SFTPConstants.SFTP_REQ_HOST, "你远程服务器ip地址");
sftpDetails.put(SFTPConstants.SFTP_REQ_USERNAME, "远程服务器用户名");
sftpDetails.put(SFTPConstants.SFTP_REQ_PASSWORD, "远程服务器密码");
sftpDetails.put(SFTPConstants.SFTP_REQ_PORT, "端口号");
String src =""; // 本地文件名
String dst =""; // 目标文件名
//初始化配置
SFTPChannel channel = test.getSFTPChannel();
ChannelSftp chSftp = channel.getChannel(sftpDetails, 响应时间);
File file = new File(src);
long fileSize = file.length();
OutputStream out = chSftp.put(dst, new FileProgressMonitor(fileSize), ChannelSftp.OVERWRITE); // 使用OVERWRITE模式 数据传输的模式
byte[] buff = new byte[1024 * 256]; // 设定每次传输的数据块大小为256KB
int read;
if (out != null) {
System.out.println("Start to read input stream");
InputStream is = new FileInputStream(src);
do {
read = is.read(buff, 0, buff.length);
if (read > 0) {
out.write(buff, 0, read);
}
out.flush();
} while (read >= 0);
System.out.println("input stream read done.");
}
//chSftp.put(s