ftp
package com.ws;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FTPUtil {
static Logger l=LoggerFactory.getLogger(FTPUtil.class);
public static String hostname="";
public static int port=22;
public static String username="";
public static String password="";
public static String workingPath="";
public static void main(String[] args) {
FTPClient ftpClient = new FTPClient();
connect(ftpClient);
disconnect(ftpClient);
}
public static boolean upload(InputStream inputStream, String saveName) {
boolean flag = false;
FTPClient ftpClient = new FTPClient();
if (connect(ftpClient)) {
try {
if (ftpClient.changeWorkingDirectory(workingPath)) {
flag=ftpClient.storeFile(saveName, inputStream);
}else {
l.info("工作目录不存在");
}
} catch (IOException e) {
e.printStackTrace();
disconnect(ftpClient);
}
}
disconnect(ftpClient);
return flag;
}
public static boolean connect(FTPClient ftpClient) {
boolean flag = false;
try {
ftpClient.connect(hostname, port);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
if (ftpClient.login(username, password)) {
flag = true;
} else {
disconnect(ftpClient);
}
} catch (IOException e) {
disconnect(ftpClient);
e.printStackTrace();
}
return flag;
}
public static void disconnect(FTPClient ftpClient) {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static boolean downLoadFile(OutputStream out, String flieName) {
boolean flag = true;
FTPClient ftpClient = new FTPClient();
if (connect(ftpClient)) {
try {
flieName=new String(flieName.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING);
ftpClient.retrieveFile(flieName,new BufferedOutputStream(out));
} catch (IOException e) {
e.printStackTrace();
disconnect(ftpClient);
}
}
disconnect(ftpClient);
return flag;
}
}
sftp
package com.ws;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SFTPUtil {
static Logger l=LoggerFactory.getLogger(SFTPUtil.class);
public static String hostname="";
public static int port=22;
public static String username="";
public static String password="";
public static String cdPath="";
public static String workingPath="";
public static void main(String[] args) throws Exception {
InputStream in=new ByteArrayInputStream("1".getBytes());
upload(in, workingPath+"1.txt");
OutputStream out=new ByteArrayOutputStream();
downLoadFile(out, workingPath+"1.txt");
System.out.println(out.toString());
System.out.println(1);
}
public static boolean upload(InputStream inputStream, String saveName) {
ChannelSftp sftp=null;
Session sshSession=connect();
try {
sftp = (ChannelSftp)sshSession.openChannel("sftp");
sftp.connect(10000);
sftp.cd(cdPath);
sftp.put(inputStream, saveName);
} catch (Exception e) {
e.printStackTrace();
}
disconnect(sshSession,sftp);
return true;
}
public static boolean downLoadFile(OutputStream out, String flieName) {
ChannelSftp sftp=null;
Session sshSession=connect();
try {
sftp = (ChannelSftp)sshSession.openChannel("sftp");
sftp.connect(10000);
sftp.cd(cdPath);
sftp.get(flieName, out);
} catch (Exception e) {
e.printStackTrace();
}
disconnect(sshSession,sftp);
return true;
}
public static Session connect() {
Session sshSession=null;
try {
JSch jsch = new JSch();
sshSession = jsch.getSession(username, hostname, port);
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
}catch (Exception e) {
e.printStackTrace();
}
return sshSession;
}
public static void disconnect(Session sshSession,ChannelSftp sftp) {
if (sftp != null){
if (sftp.isConnected()) {
sftp.disconnect();
}
}
if (sshSession != null){
if (sshSession.isConnected()){
sshSession.disconnect();
}
}
}
}