首页 > 代码库 > ftp sun jdk自带
ftp sun jdk自带
package com.italktv.colnv.stat.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.text.SimpleDateFormat;import sun.net.ftp.FtpClient;import sun.net.ftp.FtpProtocolException;/** * * @author 皮锋 java自带的API对FTP的操作 * */public class FtpUtil { // FTP客户端 private FtpClient ftpClient; /** * * 服务器连接 * * @param ip * 服务器IP * @param port * 服务器端口 * @param user * 用户名 * @param * password * 密码 * @param path * 服务器路径 */ public void connectServer(String ip, int port, String user, String password, String path) { try { ftpClient = FtpClient.create(); try { SocketAddress addr = new InetSocketAddress(ip, port); this.ftpClient.connect(addr); this.ftpClient.login(user, password.toCharArray()); System.out.println("login success!"); ftpClient.setBinaryType(); ftpClient.enablePassiveMode(true); if (path.length() != 0) { // 把远程系统上的目录切换到参数path所指定的目录 this.ftpClient.changeDirectory(path); } } catch (FtpProtocolException e) { e.printStackTrace(); } } catch (IOException ex) { ex.printStackTrace(); throw new RuntimeException(ex); } } /** * 上传文件 * * * @param localFile * * 本地文件 * @param remoteFile * 远程文件 */ public void upload(String localFile, String remoteFile) { //this.localFilename = localFile; //this.remoteFilename = remoteFile; OutputStream os = null; FileInputStream is = null; try { try { // 将远程文件加入输出流中 os = this.ftpClient.putFileStream(remoteFile); } catch (FtpProtocolException e) { e.printStackTrace(); } // 获取本地文件的输入流 File file_in = new File(localFile); is = new FileInputStream(file_in); // 创建一个缓冲区 byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } System.out.println("upload success"); } catch (IOException ex) { System.out.println("not upload"); ex.printStackTrace(); throw new RuntimeException(ex); } finally { try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } } } /** * 文件下载 * * * @param remoteFile * * 远程文件 * @param localFile * 本地文件 */ public void download(String remoteFile, String localFile) { InputStream is = null; FileOutputStream os = null; try { try { // 获取远程机器上的文件filename,借助TelnetInputStream把该文件传送到本地 is = this.ftpClient.getFileStream(remoteFile); } catch (FtpProtocolException e) { e.printStackTrace(); } File file_in = new File(localFile); os = new FileOutputStream(file_in); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } System.out.println("download success"); } catch (IOException ex) { System.out.println("not download"); ex.printStackTrace(); throw new RuntimeException(ex); } finally { try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } } } /** * 关闭连接 */ public void closeConnect() { try { this.ftpClient.close(); System.out.println("disconnect success"); } catch (IOException ex) { System.out.println("not disconnect"); ex.printStackTrace(); throw new RuntimeException(ex); } } public static void main(String agrs[]) { FtpUtil fu = new FtpUtil(); /* * 使用默认的端口号、用户名、密码以及根目录连接FTP服务器 */ fu.connectServer("upload.dreamstime.com", 21, "369605", "enigma", "/"); // String filepath[] = { "AWC1002972G020-1.dwg", "AWC1002974G020-1.cgm" };// String localfilepath[] = { "D:\\AWC1002972G020-1.dwg", "D:\\AWC1002974G020-1.cgm" };// // 下载 // for (int i = 0; i < filepath.length; i++) {// fu.download(filepath[i], localfilepath[i]);// } String localfile = "h:\\view.jpg"; String remotefile = "view.jpg"; // 上传 SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println(sDateFormat.format(new java.util.Date())); // new Date()为获取当前系统时间 fu.upload(localfile, remotefile); System.out.println(sDateFormat.format(new java.util.Date())); // new Date()为获取当前系统时间 fu.closeConnect(); }}
ftp sun jdk自带
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。