`

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批量大文件上传下载

    以下是几种常见的 Java FTP 客户端库的比较: 表 1: Java FTP 客户端库比较 | 库名称 | 作者 | 版本 | 特点 | | --- | --- | --- | --- | | J-ftp | | 1.50 | 支持 FTP、SFTP、FTPS、TFTP 等协议 | | simpleftp |...

    Java 基于Swing的FTP上传下载程序

    Java基于Swing的FTP上传下载程序是一个用户界面友好、功能完备的应用,主要用于通过FTP(File Transfer Protocol)协议实现文件的上传和下载。Swing是Java提供的一个轻量级的GUI库,它允许开发者创建出美观且功能...

    java写的FTP源代码

    Java编写的FTP(File Transfer Protocol)源代码是用于在计算机之间传输文件的一种程序实现。FTP是一种基于TCP协议的应用层协议,常用于互联网上的文件上传和下载。在Java中实现FTP功能,开发者通常会利用Java的`...

    java ftp java ftp

    5. **工作模式**:FTP有几种工作模式,如主动模式和被动模式。主动模式中,服务器主动连接客户端,而被动模式下,客户端主动连接服务器。你可以使用FTPClient的enterLocalPassiveMode或enterLocalActiveMode方法切换...

    FTP.rar_FTP传输文件_ftp java_java ftp_java 文件传输_文件传输

    在Java编程中,实现FTP文件传输通常涉及到几个关键的知识点,包括FTP客户端库的使用、连接设置、文件操作以及异常处理。下面我们将深入探讨这些内容。 首先,Java中实现FTP传输,我们通常会使用第三方库,如Apache ...

    java编写FTP文件管理程序

    在Java FTP文件管理程序中,主要有以下几个核心知识点: 1. **FTPClient的使用**:`FTPClient`类是FTP操作的核心,它提供了连接、登录、改变工作目录、上传、下载、删除文件等一系列方法。首先需要创建`FTPClient`...

    用Java实现FTP批量大文件上传下载

    通过本文的详细介绍,我们可以了解到使用Java实现FTP批量大文件上传下载的关键技术和实现细节。借助于合适的Java FTP客户端库,结合Applet与Web页面的交互设计,能够有效地解决大规模工程项目的文件传输问题,同时...

    javaftp.rar_JAVAFTP_Javaftp 服务器_ftp_java ftp_myftp.dll

    JavaFTP是一个基于Java实现的FTP(File Transfer Protocol)服务器程序,它允许用户通过FTP协议进行文件的上传、下载以及管理操作。FTP是互联网上一种广泛使用的文件传输协议,主要用于在客户端和服务器之间交换文件...

    java实现FTP服务器

    构建Java FTP服务器涉及到几个关键步骤: 1. **初始化服务器**:设置服务器监听的端口,通常为21号端口,并创建一个线程来处理每个连接请求。 2. **处理客户端请求**:当客户端连接时,服务器需要解析客户端发送的...

    java实现ftp功能

    在Java中连接到FTP服务器通常涉及以下几个步骤: - 初始化`FtpClient`对象。 - 使用`openServer()`方法打开与FTP服务器的连接。 - 调用`login()`方法登录FTP服务器,需要提供用户名和密码。 - 设置传输模式为ASCII或...

    Ftp.rar_Java FTP上传_ftp_java ftp

    总的来说,`Ftp.rar`提供的`Ftp.java`文件是一个用于Java FTP上传的实用工具,它可以帮助开发者轻松地将本地文件上传到FTP服务器。通过阅读和理解这段代码,我们可以学习到如何在实际项目中安全、高效地实现FTP文件...

    java ftp服务器实例

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

    Java实现ftp上传程序源代码

    这个源代码项目提供了一种使用Java实现FTP上传功能的方法,使得开发者能够编写应用程序,将文件或数据有效地发送到FTP服务器。以下是关于这个Java FTP上传程序的一些关键知识点: 1. **Java FTP库**: Java标准库...

    javaftp.rar_JAVAFTP_ftp_ftp源码_java_java ftp

    Java FTP(文件传输协议)是Java编程中用于与FTP服务器交互的一种技术,它允许程序员通过编写Java代码来上传、下载、删除或者管理远程文件。在Java中,`java.net`和`java.io`包提供了基本的FTP支持,而更高级的功能...

    FTP.zip_ftp socket java_java socket ftp

    FTP(File Transfer Protocol)是一种广泛使用的互联网协议,用于在客户端和服务器之间传输文件。Java中的Socket编程是实现网络通信的基础,包括FTP服务。本压缩包文件"FTP.zip_ftp socket java_java socket ftp...

    ftp_collision_java.rar_ftp java_java ftp_java ftp 服务器

    在IT行业中,FTP(File Transfer Protocol)是一种广泛用于在互联网上进行文件传输的标准协议。Java作为一种多用途且跨平台的编程语言,提供了丰富的库来实现FTP客户端和服务器的开发。本压缩包“ftp_collision_java...

    java实现ftp的几种方式_java实现ftp的几种方式.doc

    * 上传文件到 FTP 服务器 * @param localFilePath 本地文件完整路径 * @param remoteFilePath 服务器上的目标路径 * @return 是否上传成功 * @throws Exception */ public boolean uploadFile(String ...

    FTP工具(JAVA版)

    FTP工具(JAVA版)是一种基于Java编程语言实现的文件传输协议客户端应用,它允许用户方便地进行文件和文件夹的上传、下载以及管理操作。在Java中,FTP客户端通常通过利用java.net.Socket类和java.io流来实现与FTP...

    JAVA基于Socket编写的Ftp程序

    FTP是一种用于在互联网上可靠地传输文件的标准协议,它允许用户从远程主机下载文件或上传文件到远程主机。 首先,我们来看看Java中的Socket。Socket是网络通信的基本单元,可以理解为两台计算机之间的通信通道。在...

    Java语言实现简单FTP软件源代码

    FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,广泛应用于Web开发、系统管理和数据共享等领域。本项目通过Java的FTPClient库实现了FTP的基本操作,如上传、下载、列出目录内容等。 首先...

Global site tag (gtag.js) - Google Analytics