您的位置:首页 > 数据库 > Oracle

01 Oracle Architectural Components

2013-11-28 23:29 330 查看
package com.imix.sftp;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.Vector;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;

/**
* @ClassName: SFTP
* @Author: Ares
* @Description: TODO(sftp demo)
* @Date: 2013-3-1 下午12:25:24
*/
public class SFTP {

/**
* @param args
*/
public static void main(String[] args) {

SFTP ftp = new SFTP();
String host="200.31.154.19";
int port = 22;
String username="root";
String password="123456";
String directory="/home/imix/";
String uploadFile = "D:/ipconfig.txt";
String downloadFile = "ipconfig.txt";
String saveFile = "D:/ipconfig.txt";
String deleteFile = "ipconfig.txt";

ChannelSftp sftp = ftp.connect(host, port, username, password);
ftp.upload(directory, uploadFile, sftp);
ftp.download(directory, downloadFile, saveFile, sftp);
ftp.delete(directory, deleteFile, sftp);
try {
sftp.cd(directory);
sftp.mkdir("createFolder");
} catch (SftpException e) {
e.printStackTrace();
}finally{
try {
//如果没有sesstion的disconnect,程序不会退出
sftp.getSession().disconnect();
} catch (JSchException e) {
e.printStackTrace();
}
sftp.disconnect();
sftp.exit();
}
}

/**
* @AddBy: Ares
* @Description: TODO(connect the host)
* @param host
* @param port
* @param username
* @param password
* @return
*/
public ChannelSftp connect(String host, int port, String username, String password) {
ChannelSftp csftp = null;
JSch jsch = new JSch();
try {
Session sshSession = jsch.getSession(username, host, port);
System.out.println("jsch session created, user="+username);

sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("session is connected.");

Channel channel = sshSession.openChannel("sftp");
channel.connect();

csftp = (ChannelSftp)channel;
System.out.println("connected to host:"+ host);

} catch (JSchException e) {
e.printStackTrace();
}
return csftp;
}

/**
* @AddBy: Ares
* @Description: TODO(upload file to host)
* @param directory
* @param uploadFile
* @param sftp
* @return
*/
public boolean upload(String directory, String uploadFile, ChannelSftp sftp){
File file = new File(uploadFile);
try {
sftp.cd(directory);
sftp.put(new FileInputStream(file), file.getName());
System.out.println("upload file success, file:"+uploadFile);
} catch (Exception e) {
System.err.println("upload file failed, file:"+uploadFile);
e.printStackTrace();
return false;
}
return true;
}
/**
* @AddBy: Ares
* @Description: TODO(download file from host)
* @param directory
* @param downloadFile
* @param saveFile
* @param sftp
* @return
*/
public boolean download(String directory, String downloadFile, String saveFile, ChannelSftp sftp){
File file = new File(saveFile);
try {
sftp.cd(directory);
sftp.get(downloadFile, new FileOutputStream(file));
System.out.println("download file success, file:"+downloadFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (SftpException e) {
System.err.println("download file failed, file:"+downloadFile);
e.printStackTrace();
return false;
}
return true;
}

/**
* @AddBy: Ares
* @Description: TODO(delete file of host)
* @param directory
* @param deleteFile
* @param sftp
* @return
*/
public boolean delete(String directory, String deleteFile, ChannelSftp sftp){
try {
sftp.cd(directory);
sftp.rm(deleteFile);
System.out.println("delete file success, file:"+deleteFile);
} catch (SftpException e) {
System.err.println("delete file failed, file:"+deleteFile);
e.printStackTrace();
return false;
}
return true;
}

/**
* @AddBy: Ares
* @Description: TODO(get file list from directory of host)
* @param directory
* @param sftp
* @return
*/
public Vector<?> listFiles(String directory, ChannelSftp sftp){
try {
return sftp.ls(directory);
} catch (SftpException e) {
System.err.println("list directory failed, directory:"+directory);
e.printStackTrace();
}
return null;
}

}
本文转自:/article/5140219.html
感谢作者分享!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: