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

package com.lph.test;

import java.io.FileInputStream;
import java.io.IOException;

import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
 * 用sun.net.ftp.FtpClient实现简单的Java FTP 上传文件代码例子
 *
 * <p>Title: is a Class</p>
 *
 * <p>Description: 类</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: sunrise</p>
 *
 * @author islph
 * @version 1.0
 */
public class TestFtpClient {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  FtpClient ftpClient;
  String server = "localhost";
  String user = "user";
  String password = "password";
  String path = "/home/user/file";
  String filename = "sourcefile.txt";

  try {
   // server:FTP服务器的IP地址;user:登录FTP服务器的用户名
   // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径
   ftpClient = new FtpClient();
   ftpClient.openServer(server);
   ftpClient.login(user, password);
   // path是ftp服务下主目录的子目录
   if (path.length() != 0)
    ftpClient.cd(path);
   // 用2进制上传
   ftpClient.binary();

   TelnetOutputStream os = null;
   FileInputStream is = null;
   try {
    // "descfile.txt"用ftp上传后的新文件名
    os = ftpClient.put("descfile.txt");
    java.io.File file_in = new java.io.File(filename);
    if (file_in.length() == 0) {
     throw new Exception("上传文件为空!");
    }
    is = new FileInputStream(file_in);
    byte[] bytes = new byte[1024];
    int c;
    while ((c = is.read(bytes)) != -1) {
     os.write(bytes, 0, c);
    }
   } finally {
    if (is != null) {
     is.close();
    }
    if (os != null) {
     os.close();
    }
   }
   System.out.println("上传文件成功!");

  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

你可能感兴趣的:(java,ftp)