设为首页 收藏本站
查看: 1219|回复: 0

JAVA写文件到FTP的两种方法(转)

[复制链接]

尚未签到

发表于 2015-5-28 12:48:51 | 显示全部楼层 |阅读模式
  http://www.blogjava.net/JaVaa/

  1.使用URL:

URL url=new URL("ftp://javaa:javaa@172.168.2.222:21/test/javaa.txt");
PrintWriter pw=new PrintWriter(url.openConnection().getOutputStream());
pw.write("this is a test");
pw.flush();
pw.close();  上面是代码的片断,其中URL构造函数的参数可以用不同的访问协议(比如http,ftp等),"//"后跟着的是用户名和密码,两者用":"隔开,紧跟着是分隔符"@","@"以后的是IP地址和端口,然后是目录,最后才是我们要写入的文件名,其中目录是必须存在的,否则会抛出FileNotFoundException,文件可以是不存在的,不存在的时候就会新建文件,否则就会用新的内容覆盖以前的内容;

  2.使用FtpClient:


FtpClient ftpClient=new FtpClient();
ftpClient.openServer("172.168.2.222",21);//IP地址和端口
ftpClient.login("javaa","javaa");//用户名和密码,匿名登陆的话用户名为anonymous,密码为非空字符串
ftpClient.cd("test");//切换到test目录
PrintWriter pw=new PrintWriter(ftpClient.put("javaa.txt"));//写入的文件名
pw.write("this is a test");
pw.flush();
pw.close();

3.用PASV模式传送数据的FtpClient
import sun.net.ftp.FtpClient;
import java.net.Socket;
import java.io.IOException;

public class PasvFtpClient
    extends FtpClient{

  /**
   * FTP服务器的地址
   */
  private String serverAddr;
  /**
   * 连接到FTP服务器的Socket
   */
  private Socket socket;
  /**
   * 仿造父类定义的静态变量
   */
  protected final static int FTP_ERROR=3;
  /**
   * 仿造父类定义的静态变量
   */
  protected final static int FTP_SUCCESS=1;

  public PasvFtpClient(String s) throws IOException{
    super(s);
    serverAddr=s;
    socket=null;
  }

  public PasvFtpClient(String s,int i) throws IOException{
    super(s,i);
    serverAddr=s;
    socket=null;
  }

  public PasvFtpClient(){
    super();
    socket=null;
  }

  /**
   * 复写的主要部分,父类采用PORT模式,这里改为PASV模式
   * @param s 传入的FTP命令
   * @return 连接到FTP服务器的Socket
   * @throws IOException
   */
  protected Socket openDataConnection(String s) throws IOException{
    if (socket==null){
      String s1="PASV";
      if (issueCommand(s1)==FTP_ERROR){
        MyFtpProtocolException ftpprotocolexception=new MyFtpProtocolException(
            "PASV");
        throw ftpprotocolexception;
      }
      String responseStr=this.getResponseString();
      int location=responseStr.lastIndexOf(",");
      int n=Integer.parseInt(responseStr.substring(location+1,
          responseStr.indexOf(")")));
      responseStr=responseStr.substring(0,location);
      location=responseStr.lastIndexOf(",");
      int m=Integer.parseInt(responseStr.substring(location+1,
          responseStr.length()));
      socket=new Socket(serverAddr,m*256+n);
    }
    if (issueCommand(s)==FTP_ERROR){
      MyFtpProtocolException ftpprotocolexception1=new MyFtpProtocolException(s);
      throw ftpprotocolexception1;
    }
    return socket;
  }

  /**
   * 关闭与FTP服务器的连接
   * @throws IOException
   */
  public void closeServer() throws IOException{
    socket.close();
    socket=null;
    super.closeServer();
  }

  /**
   * 打开与FTP服务器的连接
   * @param s FTP服务器地址
   * @param i FTP服务器端口
   * @throws IOException
   */
  public void openServer(String s,int i) throws IOException{
    super.openServer(s,i);
    serverAddr=s;
  }
}

/**
* 自定义的FTP异常类
*/
class MyFtpProtocolException
    extends IOException{
  MyFtpProtocolException(String s){
    super(s);
  }
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71518-1-1.html 上篇帖子: 转asp.net 操作ftp类 下篇帖子: scp/ftp and shell
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表