用sun.net.ftp.FtpClient实现简单的Java FTP 上传文件代码例子
java 代码
- 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();
- }
- }
- }