sftp upload Download
Last Update:2016-07-06
Source: Internet
Author: User
<span id="Label3"></p><p><p>Code:</p></p><pre><span style="color: #000000;">package <span style="color: #000000;">Com.changbei.intf.util;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;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">SFTP {</span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">* * @param args</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">main (string[] Args) {SFTP ftp</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">SFTP (); String Host</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">192.168.0.211</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Port =<span style="color: #800080;"><span style="color: #800080;"></span> a</span><span style="color: #000000;"><span style="color: #000000;">; String username</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Root</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">; String Password</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Root</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">; String Directory</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">/opt/tomcat/</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">; String UploadFile</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">D:/test.txt</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">String downloadFile = "ipconfig.txt";</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">String saveFile = "d:/ipconfig.txt";</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">String DeleteFile = "ipconfig.txt";</span></span><span style="color: #000000;"><span style="color: #000000;">channelsftp sftp</span></span>=<span style="color: #000000;"><span style="color: #000000;">ftp.connect (host, port, username, password); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{ftp.upload (directory, uploadfile, sftp);</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">ftp.download (directory, downloadFile, saveFile, sftp);</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">ftp.delete (directory, deletefile, sftp);</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">sftp.cd (directory);</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Sftp.mkdir ("createfolder");</span></span>}<span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(Exception E) {e.printstacktrace (); }</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">finally</span></span><span style="color: #000000;"><span style="color: #000000;">{ </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;"> { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">If there is no sesstion disconnect, the program will not exit</span></span><span style="color: #000000;"><span style="color: #000000;">sftp.getsession (). Disconnect (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(jschexception E) {e.printstacktrace (); } sftp.disconnect (); Sftp.exit (); } } </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">* * @AddBy: Ares * @Description: TODO (connect the host) * @param host * @param port * @param usern AME * @param password * @return</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span>Channelsftp Connect (String host,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">port, string username, string Password) {channelsftp csftp</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">; Jsch Jsch</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Jsch (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{Session sshsession</span></span>=<span style="color: #000000;"><span style="color: #000000;">jsch.getsession (username, host, port); System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Jsch session created, user=</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">username); Sshsession.setpassword (password); Properties Sshconfig</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Properties (); Sshconfig.put (</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">stricthostkeychecking</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>,<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">No</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); Sshsession.setconfig (sshconfig); Sshsession.connect (); System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">session is Connected.</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); Channel Channel</span></span>= Sshsession.openchannel (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">sftp</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); Channel.connect (); Csftp</span></span>=<span style="color: #000000;"><span style="color: #000000;">(channelsftp) channel; System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">connected to Host:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">host); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(jschexception E) {e.printstacktrace (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">csftp; } </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;">* <span style="color: #008000;">* @AddBy: Ares * @Description: TODO (upload file to Host) * @param directory * @param uploadfile * @param sftp * @return</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">Boolean upload (string directory, string uploadfile, channelsftp sftp) {file file</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">File (uploadfile); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{sftp.cd (directory); Sftp.put (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">FileInputStream (file), file.getname ()); System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">upload file success, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">uploadfile); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(Exception e) {System.err.println (</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">upload file failed, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">uploadfile); E.printstacktrace (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">false</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;">* <span style="color: #008000;">* @AddBy: Ares * @Description: TODO (download file from Host) * @param directory * @param downloadfil E * @param saveFile * @param sftp * @return</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">boolean download (string directory, string downloadFile, string saveFile, channelsftp sftp) {file file</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">File (saveFile); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{sftp.cd (directory); SFTP.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Get</span></span>(downloadFile,<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">FileOutputStream (file)); System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">download file success, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">downloadFile); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(filenotfoundexception E) {e.printstacktrace (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">false</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(sftpexception e) {System.err.println (</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">download file failed, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">downloadFile); E.printstacktrace (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">false</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;">* <span style="color: #008000;">* @AddBy: Ares * @Description: TODO (delete file of Host) * @param directory * @param deletefile * @param sftp * @return</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">Boolean Delete (string directory, string deletefile, channelsftp sftp) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{sftp.cd (directory); Sftp.rm (deletefile); System.</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> out</span>. println (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Delete file success, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">deletefile); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(sftpexception e) {System.err.println (</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Delete file failed, file:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">deletefile); E.printstacktrace (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">false</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;">* <span style="color: #008000;">* @AddBy: Ares * @Description: TODO (get file list from directory of Host) * @param directory * @para M SFTP * @return</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span>Vector<?><span style="color: #000000;"><span style="color: #000000;">listfiles (String directory, channelsftp sftp) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;"> { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">Sftp.ls (directory); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(sftpexception e) {System.err.println (</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">List directory failed, directory:</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>+<span style="color: #000000;"><span style="color: #000000;">directory); E.printstacktrace (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">; }}</span></span></pre><span class="cnblogs_code_collapse"><span class="cnblogs_code_collapse">View Code</span></span><p><p></p></p><p><p>Jar Package Maven:</p></p><pre><pre><!--https:<span style="color: #008000;">//</span><span style="color: #008000;">mvnrepository.com/artifact/com.jcraft/jsch</span>- <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version> <span style="color: #800080;">0.1</span>. <span style="color: #800080;"></span></version> </dependency></pre></pre><span class="cnblogs_code_collapse"><span class="cnblogs_code_collapse">View Code</span></span><p><p></p></p><p><p> Sftp upload Download </p> </p></span>