六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 41|回复: 0

常用java工具类(三)

[复制链接]

升级  51.33%

33

主题

33

主题

33

主题

秀才

Rank: 2

积分
127
 楼主| 发表于 2013-1-15 02:36:07 | 显示全部楼层 |阅读模式
FTP工具类:
主要封装登录,上传,列表等:
 
package com.billows.util;import java.io.DataInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import sun.net.TelnetInputStream;import sun.net.TelnetOutputStream;import sun.net.ftp.FtpClient;/** * ftp工具类 *  * @author Billows.Van * @since Create on 2010-01-05 14:49:08 * @version 1.0 */public class FtpUtil {private 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 {FtpUtil ftp = new FtpUtil();try {// 连接ftp服务器ftp.connectServer("127.0.0.1", "test", "test", "");/** 上传文件到 根目录 文件夹下 */System.out.println("filesize:" + ftp.upload("E:/favicon.ico") + "字节");/** 取得根目录文件夹下的所有文件列表,并下载到 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, "E:/" + filename);}} catch (Exception e) {e.printStackTrace();} finally {ftp.closeServer();}}} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表