用sun.net.ftp.FtpClient实现简单的Java FTP 上传文件代码例子

用sun.net.ftp.FtpClient实现简单的Java FTP 上传文件代码例子
java 代码
  1. package com.lph.test;  
  2.   
  3. import java.io.FileInputStream;  
  4. import java.io.IOException;  
  5.   
  6. import sun.net.TelnetOutputStream;  
  7. import sun.net.ftp.FtpClient;  
  8. /** 
  9.  * 用sun.net.ftp.FtpClient实现简单的Java FTP 上传文件代码例子 
  10.  * 
  11.  * <p>Title: is a Class</p> 
  12.  * 
  13.  * <p>Description: 类</p> 
  14.  * 
  15.  * <p>Copyright: Copyright (c) 2006</p> 
  16.  * 
  17.  * <p>Company: sunrise</p> 
  18.  * 
  19.  * @author islph 
  20.  * @version 1.0 
  21.  */  
  22. public class TestFtpClient {  
  23.   
  24.  /** 
  25.   * @param args 
  26.   */  
  27.  public static void main(String[] args) {  
  28.   // TODO 自动生成方法存根  
  29.   FtpClient ftpClient;  
  30.   String server = "localhost";  
  31.   String user = "user";  
  32.   String password = "password";  
  33.   String path = "/home/user/file";  
  34.   String filename = "sourcefile.txt";  
  35.   
  36.   try {  
  37.    // server:FTP服务器的IP地址;user:登录FTP服务器的用户名  
  38.    // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径  
  39.    ftpClient = new FtpClient();  
  40.    ftpClient.openServer(server);  
  41.    ftpClient.login(user, password);  
  42.    // path是ftp服务下主目录的子目录  
  43.    if (path.length() != 0)  
  44.     ftpClient.cd(path);  
  45.    // 用2进制上传  
  46.    ftpClient.binary();  
  47.   
  48.    TelnetOutputStream os = null;  
  49.    FileInputStream is = null;  
  50.    try {  
  51.     // "descfile.txt"用ftp上传后的新文件名  
  52.     os = ftpClient.put("descfile.txt");  
  53.     java.io.File file_in = new java.io.File(filename);  
  54.     if (file_in.length() == 0) {  
  55.      throw new Exception("上传文件为空!");  
  56.     }  
  57.     is = new FileInputStream(file_in);  
  58.     byte[] bytes = new byte[1024];  
  59.     int c;  
  60.     while ((c = is.read(bytes)) != -1) {  
  61.      os.write(bytes, 0, c);  
  62.     }  
  63.    } finally {  
  64.     if (is != null) {  
  65.      is.close();  
  66.     }  
  67.     if (os != null) {  
  68.      os.close();  
  69.     }  
  70.    }  
  71.    System.out.println("上传文件成功!");  
  72.   
  73.   } catch (Exception e) {  
  74.    e.printStackTrace();  
  75.   }  
  76.  }  
  77. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sun.net.ftp.ftpclient 工具类是 Java 中内置的 FTP 客户端工具类,可以用于实现 FTP 文件上传和下载等操作。下面是一个使用 sun.net.ftp.ftpclient 工具类实现文件上传的示例代码: ```java import sun.net.ftp.FtpClient; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class FTPUploader { public static void main(String[] args) { String server = "ftp.example.com"; // FTP 服务器地址 int port = 21; // FTP 服务器端口号 String user = "username"; // FTP 登录用户名 String password = "password"; // FTP 登录密码 String remoteDir = "/upload/"; // 远程目录,注意要以 / 结尾 String localFile = "local_file.txt"; // 本地文件名 try (FtpClient ftpClient = FtpClient.create(server)) { ftpClient.login(user, password.toCharArray()); // 登录 FTP 服务器 ftpClient.changeDirectory(remoteDir); // 切换到远程目录 File file = new File(localFile); try (InputStream inputStream = new FileInputStream(file)) { ftpClient.putFile(file.getName(), inputStream); // 上传文件 System.out.println("File uploaded successfully."); } } catch (IOException e) { e.printStackTrace(); } } } ``` 在示例代码中,我们通过 `FtpClient.create(server)` 创建了一个 FTP 客户端对象,然后使用 `ftpClient.login(user, password.toCharArray())` 方法登录 FTP 服务器,接着使用 `ftpClient.changeDirectory(remoteDir)` 方法切换到远程目录,最后使用 `ftpClient.putFile(file.getName(), inputStream)` 方法上传文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值