狀態集合I的a弧轉換,表示為move(I,a)定義為狀態集合J,其中J是所有那些可從I的某一狀態經過一條a弧而到達的狀態的全體。
創新互聯建站于2013年成立,是專業互聯網技術服務公司,擁有項目網站設計、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元西秀做網站,已為上家服務,為西秀各地企業和個人服務,聯系電話:028-86922220
定義Ia = ε-closure(move(I,a))
java連接Sftp服務器后,使用第三方jar com.jcraft.jsch.ChannelSftp;用get()方法獲取的InputStream流為空,檢查下第3方初始化這些寫對沒有,或者就是沒得到流,打印看看,解決問題。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Vector;
import org.apache.commons.lang.ArrayUtils;
import com.huawei.bme.commons.om.log.DebugLog;
import com.huawei.bme.commons.om.log.LogFactory;
import com.huawei.icity.commons.constants.KeyConstant;
import com.huawei.icity.commons.constants.NumberConstant;
import com.huawei.icity.commons.exception.SPMException;
import com.huawei.icity.commons.log.IcityLogFactory;
import com.huawei.icity.commons.log.IcityRuntimeLog;
import com.huawei.icity.commons.sysconfig.StaticInitData;
import com.huawei.icity.commons.utils.StringTools;
import com.huawei.icity.omp.common.util.CommonTools;
import com.huawei.icity.omp.interfaces.hint.constant.TimetaskConstants;
import com.huawei.mdmc.bfm.cms.assist.common.domain.SingleTableModel;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.ChannelS;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
/**
* SFTP公共處理類 〈提供SFTP文件上傳,下載,獲取指定目錄 下文件名集合, 獲取指定目錄 下文件集合等方法
*
* @author mKF75022
* @version iCity Manager V100R002 2012-7-3
* @since iCity Manager V100R002C01
*/
public class SFTPTool
{
/**
* 調測日志記錄器。
*/
private static final DebugLog DEBUGGER = LogFactory.getDebugLog(SFTPTool.class);
/**
* 運行日志記錄器。
*/
private static final IcityRuntimeLog RUNTIMELOGGER = IcityLogFactory
.getRuntimeLog(SFTPTool.class);
/**
* Sftp客戶端對象
*/
private ChannelSftp sftp = null;
/**
* SFTP IP地址
*/
private String ip;
/**
* SFTP 端口
*/
private String port;
/**
* SFTP 用戶名
*/
private String userName;
/**
* SFTP 密碼
*/
private String password;
/**
* SFTP上傳模式:BINARY
*/
// private static final int BINARY_FILE_TYPE = 2;
/**
*
* 獲取實例
*
* @return SFTPTool newinstance實例
*
*/
public static SFTPTool getNewInstance()
{
return new SFTPTool();
}
/**
* 初始化連接參數
*
* @param sftpIP
* IP
* @param sftpPort
* 端口
* @param sftpUsername
* 用戶名
* @param sftpPassword
* 密碼
*/
public void init(String sftpIP, String sftpPort, String sftpUsername, String sftpPassword)
{
// 獲取SFTP連接信息
this.ip = sftpIP;
this.port = sftpPort;
this.userName = sftpUsername;
this.password = sftpPassword;
}
/**
* 從SFTP將符合約定命名的文件都下載到本地 .
*
* @param sftpDir
* SFTP服務器文件存放路徑
* @param locDir
* 本地文件存放路徑
* @param regex
* 指定文件名的格式
* @param needBackup
* 是否需要文件備份(true:是;false:否)
* @param needFullMatch
* 是否要求全局匹配(true:是;false:否)
* @param deleteFtpFile
* the delete ftp file
* @return 下載到本地的文件列表
*/
public ListFile synSFTPFileToLocal(String sftpDir, String locDir, String regex,
boolean needBackup, boolean needFullMatch, boolean deleteFtpFile)
{
ListFile files = new ArrayListFile(KeyConstant.INITIAL_NUMBER);
try
{
this.connect(ip, Integer.parseInt(this.port), userName, password);
// 獲得FTP上文件名稱列表
ListString ftpFileNameList = this.listFiles(sftpDir, regex, needFullMatch);
File localFile = null;
int size = ftpFileNameList.size();
// 根據每個FTP文件名稱創建本地文件。
for (int i = 0; i size; i++)
{
// 下載源文件
localFile = this.download(sftpDir, locDir, ftpFileNameList.get(i), deleteFtpFile);
if (localFile.exists())
{
files.add(localFile);
}
if (needBackup)
{
// 備份源文件生成默認備份文件路徑(據請求文件路徑,生成同級目錄的備份文件夾絕對路徑)
String parentDir = sftpDir.substring(NumberConstant.INT_0,
sftpDir.lastIndexOf("/") + 1);
String backupDir = parentDir + TimetaskConstants.DEFAULT_BACKUP_DIRNAME;
boolean bakExists = openDir(backupDir);
if (bakExists)
{
this.uploadFile(backupDir, localFile);
}
else
{
boolean parentExists = openDir(parentDir);
if (parentExists)
{
s;
this.uploadFile(backupDir, localFile);
}
else
{
DEBUGGER.error("sftp parentDir no exisits ");
}
}
}
}
}
catch (Exception e)
{
DEBUGGER.error("synSFTPFileToLocal Exception", e);
}
finally
{
this.disconnect();
}
return files;
}
/**
* 連接sftp服務器
*
* @param sftpip
* ip地址
* @param sftpport
* 端口
* @param sftpusername
* 用戶名
* @param sftppassword
* 密碼
* @return channelSftp
* @throws SPMException
*/
public ChannelSftp connect(String sftpip, int sftpport, String sftpusername, String sftppassword)
{
sftp = new ChannelSftp();
try
{
JSch jsch = new JSch();
jsch.getSession(sftpusername, sftpip, sftpport);
Session sshSession = jsch.getSession(sftpusername, sftpip, sftpport);
RUNTIMELOGGER.info("Session created");
sshSession.setPassword(sftppassword);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
// 設置超時時間為
sshSession.setTimeout(Integer.parseInt(StaticInitData.getFtpConnectTimeOut())
* NumberConstant.INT_1000);
sshSession.connect();
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
// 設置文件類型
// ftpClient.setFileType(BINARY_FILE_TYPE);
// 與防火墻相關
// ftpClient.enterLocalPassiveMode();
}
catch (JSchException e)
{
DEBUGGER.error("JSchException : {}", e);
}
return sftp;
}
// /**
// * 創建指定文件夾
// *
// * @param dirName
// * dirName
// */
// public void mkDir(String dirName)
// {
// try
// {
// s;
// }
// catch (SftpException e)
// {
// DEBUGGER.error("mkDir Exception : " + e);
// }
// }
/**
* 創建指定文件夾
*
* @param dirName
* dirName
*/
public void mkDir(String dirName)
{
String[] dirs = dirName.split("/");
try
{
String now = s;
for (int i = 0; i dirs.length; i++)
{
boolean dirExists = openDir(dirs[i]);
if (!dirExists)
{
s(dirs[i]);
s(dirs[i]);
}
}
s;
}
catch (SftpException e)
{
DEBUGGER.error("mkDir Exception : " + e);
}
}
/**
* 打開指定目錄
*
* @param directory
* directory
* @return 是否打開目錄
*/
public boolean openDir(String directory)
{
try
{
s;
return true;
}
catch (SftpException e)
{
DEBUGGER.error("openDir Exception : " + e);
return false;
}
}
文章標題:java代碼連接sftp,java代碼連接不上oracle
網站鏈接:http://m.kartarina.com/article4/hddjie.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、動態網站、全網營銷推廣、品牌網站設計、網站改版、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯