当前位置:编程学习 > JAVA >>

FTP文件上传与下载

实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1、通过JDK自带的API实现;2、通过Apache提供的API是实现。
第一种方式
[java] 
package com.cloudpower.util; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
 
import sun.net.TelnetInputStream; 
import sun.net.TelnetOutputStream; 
import sun.net.ftp.FtpClient; 
 
/**
 * Java自带的API对FTP的操作
 * @Title:Ftp.java
 * @author: 周玲斌  
 */ 
public class Ftp { 
    /**
     * 本地文件名
     */ 
    private String localfilename; 
    /**
     * 远程文件名
     */ 
    private String remotefilename; 
    /**
     * FTP客户端
     */ 
    private FtpClient ftpClient; 
 
    /**
     * 服务器连接
     * @param ip 服务器IP
     * @param port 服务器端口
     * @param user 用户名
     * @param password 密码
     * @param path 服务器路径
     * @author 周玲斌
     * @date   2012-7-11
     */ 
    public void connectServer(String ip, int port, String user, 
            String password, String path) { 
        try { 
            /* ******连接服务器的两种方法*******/ 
            //第一种方法 
//            ftpClient = new FtpClient(); 
//            ftpClient.openServer(ip, port); 
            //第二种方法 
            ftpClient = new FtpClient(ip); 
             
            ftpClient.login(user, password); 
            // 设置成2进制传输 
            ftpClient.binary(); 
            System.out.println("login success!"); 
            if (path.length() != 0){ 
                //把远程系统上的目录切换到参数path所指定的目录 
                ftpClient.cd(path); 
            } 
            ftpClient.binary(); 
        } catch (IOException ex) { 
            ex.printStackTrace(); 
            throw new RuntimeException(ex); 
        } 
    } 
    /**
     * 关闭连接
     * @author 周玲斌
     * @date   2012-7-11
     */ 
    public void closeConnect() { 
        try { 
            ftpClient.closeServer(); 
            System.out.println("disconnect success"); 
        } catch (IOException ex) { 
            System.out.println("not disconnect"); 
            ex.printStackTrace(); 
            throw new RuntimeException(ex); 
        } 
    } 
    /**
     * 上传文件
     * @param localFile 本地文件
     * @param remoteFile 远程文件
     * @author 周玲斌
     * @date   2012-7-11
     */ 
    public void upload(String localFile, String remoteFile) { 
        this.localfilename = localFile; 
        this.remotefilename = remoteFile; 
        TelnetOutputStream os = null; 
        FileInputStream is = null; 
        try { 
            //将远程文件加入输出流中 
            os = ftpClient.put(this.remotefilename); 
            //获取本地文件的输入流 
            File file_in = new File(this.localfilename); 
            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 { 
              &n
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,