`
lzkyo
  • 浏览: 468216 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA读写ftp

    博客分类:
  • Java
阅读更多
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import sun.net.*;
import sun.net.ftp.FtpClient;

public class TestUpload {
	public FtpClient ftpClient;

	/**
	 * connectServer 连接ftp服务器
	 * 
	 * @throws java.io.IOException
	 * @param path 文件夹,空代表根目录
	 * @param password 密码
	 * @param user 登陆用户
	 * @param server 服务器地址
	 */
	public void connectServer(String server, String user, String password,
			String path) throws IOException {
		// 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();
	}

	/**
	 * upload 上传文件
	 * 
	 * @throws java.lang.Exception
	 * @return -1 文件不存在 -2 文件内容为空 >0 成功上传,返回文件的大小
	 * @param newname 上传后的新文件名
	 * @param filename 上传的文件
	 */
	public long upload(String filename, String newname) throws Exception {
		long result = 0;
		TelnetOutputStream os = null;
		FileInputStream is = null;
		try {
			java.io.File file_in = new java.io.File(filename);
			if (!file_in.exists())
				return -1;
			if (file_in.length() == 0)
				return -2;
			os = ftpClient.put(newname);
			result = file_in.length();
			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();
			}
		}
		return result;
	}

	/**
	 * upload
	 * 
	 * @throws java.lang.Exception
	 * @return
	 * @param filename
	 */
	public long upload(String filename) throws Exception {
		String newname = "";
		if (filename.indexOf("/") > -1) {
			newname = filename.substring(filename.lastIndexOf("/") + 1);
		} else {
			newname = filename;
		}
		return upload(filename, newname);
	}

	/**
	 * download 从ftp下载文件到本地
	 * 
	 * @throws java.lang.Exception
	 * @return
	 * @param newfilename 本地生成的文件名
	 * @param filename 服务器上的文件名
	 */
	public long download(String filename, String newfilename) throws Exception {
		long result = 0;
		TelnetInputStream is = null;
		FileOutputStream os = null;
		try {
			is = ftpClient.get(filename);
			java.io.File outfile = new java.io.File(newfilename);
			os = new FileOutputStream(outfile);
			byte[] bytes = new byte[1024];
			int c;
			while ((c = is.read(bytes)) != -1) {
				os.write(bytes, 0, c);
				result = result + c;
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (is != null) {
				is.close();
			}
			if (os != null) {
				os.close();
			}
		}
		return result;
	}

	/**
	 * 取得某个目录下的所有文件列表
	 * 
	 */
	public List getFileList(String path) {
		List list = new ArrayList();
		try {
			DataInputStream dis = new DataInputStream(ftpClient.nameList(path));
			String filename = "";
			while ((filename = dis.readLine()) != null) {
				list.add(filename);
			}

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

	/**
	 * closeServer 断开与ftp服务器的链接
	 * 
	 * @throws java.io.IOException
	 */
	public void closeServer() throws IOException {
		try {
			if (ftpClient != null) {
				ftpClient.closeServer();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) throws Exception {
		TestUpload ftp = new TestUpload();
		try {
			System.out.println("start connection >>>>>>>>>>.");
			// 连接ftp服务器
			ftp.connectServer("192.168.1.105", "li", "li", "download");
			/** 上传文件到 info2 文件夹下 */
			System.out.println("filesize:"
					+ ftp.upload("c:/11.txt") + "字节");
			/** 取得info2文件夹下的所有文件列表,并下载到 E盘下 */
			List list = ftp.getFileList(".");
//			for (int i = 0; i < list.size(); i++) {
//				String filename = (String) list.get(i);
//				System.out.println(filename);
//				ftp.download(filename, "d:/" + filename);
//			}
			ftp.download("11.txt", "d:/" + "11.txt");
			System.out.println("end connection >>>>>>>>>>.");
		} catch (Exception e) {
			// /
		} finally {
			ftp.closeServer();
		}
	}
	

}

 

用到的包在jdk下面,rt.jar

分享到:
评论
1 楼 ling_zhenxiajiuyou 2011-08-10  
嗯,多谢,虽然不知道能不能跑起来,但试试吧,,

相关推荐

    java读写ftp文件以及设置ftp共享服务器

    java读写ftp文件以及设置ftp共享服务器

    java 读取Ftp指定位置的文件解析并入库

    标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...

    java FTP server

    开发者可以利用Java的`java.net.Socket`类来创建网络连接,`java.nio`包中的类处理文件读写,以及通过多线程处理并发的FTP客户端请求。FTP服务器的主要功能包括: 1. **用户认证**:Java FTP Server需要具备用户...

    Java-FTPServer.rar_FTPServer JAVA_FTP服务器_java FtpServer_java 监听f

    Java FTPServer是一个基于Java语言实现的FTP(File Transfer Protocol)服务器程序,它允许用户通过FTP协议上传、下载或管理远程服务器上的文件。FTP是互联网上一种标准的数据传输协议,广泛用于在不同计算机之间...

    java 实现ftp 服务器

    Java 实现FTP服务器是一项常见的编程任务,这通常涉及到网络编程和文件传输协议的理解。FTP(File Transfer Protocol)是一种用于在互联网上传输文件的标准协议。在Java中实现FTP服务器,我们可以利用Java的内置类库...

    java-ftp-0.92.tar.gz_ftp_ftp java_ftp源码_java ftp

    Java FTP库是用于在Java应用程序中实现文件传输协议(FTP)功能的重要工具。这个"java-ftp-0.92.tar.gz"压缩包包含了FTP客户端的源代码,这对于开发者来说是一个宝贵的资源,可以帮助他们理解FTP协议的工作原理以及...

    JAVA处理FTP上的文件

    本教程将详细介绍如何使用Java处理FTP上的文件,包括下载、解压、备份、读写CSV文件以及压缩文件等操作。 首先,要进行FTP操作,我们需要一个Java库,如Apache Commons Net。该库提供了一个方便的API来实现FTP...

    用Java实现FTP服务器 .rar_FTP服务器_ftp_java ftp_java ftp 服务器_java ftp服务器

    标题中的“用Java实现FTP服务器”表明我们要讨论的是如何使用Java编程语言来构建一个FTP(File Transfer Protocol)服务器。FTP是一种用于在互联网上传输文件的标准协议。Java由于其跨平台性和丰富的类库,成为了...

    java版FTP文件管理程序

    10. **文件I/O操作**:在本地文件系统上,程序可能使用Java的`java.io`或`java.nio`包进行文件读写操作,如创建、读取、写入和删除文件。 11. **测试**:一个完整的开发流程会包含单元测试和集成测试,确保每个功能...

    java实现ftp文件传输

    Java实现FTP文件传输涉及到多个关键知识点,包括FTP协议的基本概念、Java中的FTP客户端库、以及如何使用Java进行文件操作。以下是对这些知识点的详细说明: 1. FTP协议:FTP(File Transfer Protocol)是一种用于在...

    Java读写文件及FTP例子.docx

    以上内容主要涵盖了Java读写文件的基本操作以及使用Apache Commons Net库进行FTP文件传输的方法。在实际开发中,为了提高代码的可维护性和复用性,通常会封装成服务或工具类。此外,现代的Java开发中,还会有更高级...

    ftp.zip_FTP客户端程序_ftp_ftp java_ftp客户端 java_java ftp客户端

    3. **FTP流**:`java.io`包中的`InputStream`和`OutputStream`用于读写数据。在FTP会话中,除了控制连接外,还会创建一个数据连接,用于实际的数据传输。 4. **FTP会话管理**:Java没有内置的FTP库,但可以使用`...

    Ftp.zip_ftp java_java ftp_java ftp server_java 实现 FTP 服务器 源码

    在Java中,处理I/O流是非常基础且重要的,特别是在构建文件传输应用时,因为FTP涉及到大量的文件读写操作。`IOUtils`可能会提供一些便捷的静态方法,以简化代码并减少出错的可能性。 接着是`FtpServer.java`,这是...

    java ftp服务器实例

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

    java ftp断点上传和下载

    FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。断点续传是FTP的一个重要特性,允许用户在文件...了解这些知识点将使你能够高效地实现在Java环境中进行FTP文件的断点续传操作。

    ftp.rar_FTP.jar_JAVAFTP_ftp java_java ftp_pudn ftp ja

    在`java.net`包中,`Socket`和`ServerSocket`类提供了网络通信的基础,而`java.io`中的`InputStream`和`OutputStream`则用于读写数据。 `FTP.jar`可能包含了以下核心功能: 1. **连接与断开**:连接到指定的FTP...

    基于JAVA的局域网FTP

    4. **文件I/O操作**:在Java中,FileInputStream和FileOutputStream类用于读写文件,而BufferedInputStream和BufferedOutputStream可以提高读写效率。 5. **数据传输模式**:FTP有两种数据传输模式,主动(Active)...

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

    例如,`java.net.Socket`类用于建立与服务器的连接,`java.io`中的`InputStream`和`OutputStream`处理数据的读写。另外,可能还会使用到`org.apache.commons.net.ftp`库,这是一个强大的FTP客户端库,提供了更高级的...

    Java实现ftp文件传输

    在Java编程环境中,我们可以利用Java的内置库`java.net`和`java.io`来实现FTP客户端和服务端的功能。本篇文章将深入探讨如何使用Java实现FTP文件传输,包括客户端和服务端的构建。 首先,我们需要理解FTP的基本工作...

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    ### Java FTP 指定下载文件和上传文件到指定的服务器目录 #### 一、概述 在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定...

Global site tag (gtag.js) - Google Analytics