`

JAVA写文件到FTP的几种方法

    博客分类:
  • JESE
阅读更多

 

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);
  }
}
 
分享到:
评论

相关推荐

    java ftp服务器实例

    4. **文件操作**:FTP服务器需要能够读写文件,这就涉及到`java.io`包中的文件操作方法。例如,`File`类用于表示本地文件,`FileInputStream`和`FileOutputStream`用于读写文件内容。 5. **多线程处理**:为了同时...

    Java仿照ftp做的TCP/IP文件传输Demo

    FTP协议是互联网上用于在主机之间传输文件的标准协议,而这个Demo则展示了如何不依赖现成的FTP库,通过自定义的TCP/IP通信来模拟FTP的功能。 首先,我们要理解TCP/IP协议族中的TCP(Transmission Control Protocol...

    FTP.zip_ftp socket java_java socket ftp

    2. **Socket连接**: 在Java中,我们首先需要建立一个到FTP服务器的Socket连接。这通常通过`Socket socket = new Socket(serverAddress, port)`完成,其中`serverAddress`是FTP服务器的IP地址,`port`是FTP服务器监听...

    java实现ftp上传下载

    本篇将详细讲解如何使用Java来实现FTP的上传和下载功能,以及涉及的相关库和API。 首先,Java中的FTP功能主要依赖于Apache Commons Net库,这是一个强大的网络协议库,提供了FTP、Telnet等协议的实现。在给定的文件...

    ssh2向linux发送操作命令,ftp下载linux文件到本地

    代码示例中展示了如何使用 `ChannelSftp` 类从远程 Linux 服务器下载文件到本地。主要步骤包括: - 创建 `FTPClient` 对象,并调用其 `connect` 方法建立连接。 - 调用 `cd` 方法切换到目标目录。 - 使用 `listFiles...

    java文件管理器

    在Java中,实现文件管理涉及到以下几个核心概念和技术: 1. **File类**:Java中的`java.io.File`类是文件和目录路径名的抽象表示。它提供了许多方法来创建、删除、重命名文件以及获取文件属性,如大小、创建时间等...

    java的基于Socket的文件传输服务

    - 文件的分块传输,特别是大文件,可以避免一次性加载整个文件到内存中。 - 断点续传功能,允许在传输中断后从上次断开的位置继续传输。 - 错误检测和恢复机制,例如使用校验和或CRC来检查数据的完整性。 - 安全性,...

    基于Java的实例源码-swiftp(Android上的FTP服务器 SwiFTP).zip

    - 文件上传下载:SwiFTP通过FTP的STOR和RETR命令实现文件上传和下载,使用FtpFileSystem进行实际的文件操作。 5. 使用与二次开发 - 在Android应用中集成SwiFTP,需要在AndroidManifest.xml中声明服务,并在代码中...

    JAVA源码JAVA文件传输(论文+源代码)

    根据提供的文件信息,本文将详细解析“JAVA源码JAVA文件传输(论文+源代码)”这一主题涉及的关键技术点。此项目不仅包含了论文还附带了实际的源代码,旨在为学习者提供理论与实践相结合的学习资源。下面我们将从以下...

    java socket 文件传输 示例

    Java Socket 是一种网络通信协议,它允许两台计算机(或者一个客户端和一个服务器)通过Internet进行双向通信。在Java中,Socket类和ServerSocket类是实现这一功能的基础。本示例将详细介绍如何在Android平台上使用...

    JAVA上百实例源码以及开源项目源代码

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    java 从服务器下载文件并保存到本地的示例

    Java从服务器下载文件并保存到本地的示例是Java开发中的一种常见操作,本篇文章主要介绍了如何使用Java从服务器下载文件并保存到本地的示例代码。 下载文件的基本流程 当我们想要下载网站上的某个资源时,我们会...

    ftp上传下载例子

    3. **设置工作目录**:使用`changeWorkingDirectory()`方法切换到目标目录,以便上传或下载文件到指定位置。 4. **上传文件**:调用`storeFile()`方法,传入本地文件路径和远程文件名,将本地文件上传至FTP服务器。...

    行业分类-设备装置-一种实现文件一写多读的方法及装置.zip

    标题中的“行业分类-设备装置-一种实现文件一写多读的方法及装置”表明这是一个关于计算机硬件设备或系统设计的专题,重点在于介绍如何实现一个文件可以被一个源头写入,同时多个读取端口进行读取的机制。...

    socket ftp客户端程序

    Socket FTP客户端程序是一种基于计算机网络技术的应用,主要利用Socket编程接口和FTP(文件传输协议)来实现在网络间上传和下载文件的功能。本项目提供的FTP客户端程序可能还处于开发阶段,功能并不全面,但可以作为...

    java开源包8

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包9

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包101

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

Global site tag (gtag.js) - Google Analytics