/*
* Created on Nov 26, 2009
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.suning.commerce.order.commands;
/*
*-----------------------------------------------------------------
* IBM Confidential
*
* OCO Source Materials
*
* WebSphere Commerce
*
* (C) Copyright IBM Corp. 2009
*
* The source code for this program is not published or otherwise
* divested of its trade secrets, irrespective of what has
* been deposited with the U.S. Copyright Office.
*-----------------------------------------------------------------
*/
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import org.apache.commons.lang.StringUtils;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
* @author Athena
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class SNFtpUtil extends FtpClient {
private String server;
private String user;
private String password;
private int port;
private String path;
/**
* 连接FTP服务器
*/
public void connectServer() throws Exception {
openServer(server, port);
login(user, password);
System.out.println("Login success!");
binary();
}
/**
* 关闭FTP服务器连接
*/
public void closeConnect() {
try {
closeServer();
} catch (IOException e) {
e.printStackTrace();
}
}
public void upload(InputStream in, String remotefilename)
throws IOException {
TelnetOutputStream os = null;
try {
os = put(remotefilename);
byte[] bytes = new byte[1024];
int c;
while ((c = in.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
} finally {
in.close();
os.close();
}
}
public SNFtpUtil popFtpConfigSERVER(String ip, String port, String user,
String password, String path) throws IOException
{
SNFtpUtil ftp = new SNFtpUtil();
ftp.setServer(ip);
ftp.setPort((new Integer(port)).intValue());
ftp.setUser(user);
ftp.setPassword(password);
ftp.setPath(path);
try {
ftp.connectServer();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("before path is" + path);
ftp.cd(path);
System.out.println("after path is" + path);
return ftp;
}
/**
* 上传文件
*/
public void upload(String localFilePath, String remoteFilePath) {
try {
TelnetOutputStream os = put(remoteFilePath);
File file_in = new File(localFilePath);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int ch;
while ((ch = is.read(bytes)) != -1) {
os.write(bytes, 0, ch);
}
is.close();
os.close();
System.out.println("Upload file succesfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 下载文件
*/
public void download(String localFilePath, String remoteFilePath) {
try {
int ch;
File fi = new File(localFilePath);
RandomAccessFile raf = new RandomAccessFile(fi, "rw");
raf.seek(0);
TelnetInputStream fget = get(remoteFilePath);
DataInputStream puts = new DataInputStream(fget);
while ((ch = puts.read()) >= 0) {
raf.write(ch);
}
fget.close();
raf.close();
System.out.println("Dowload one log successfully");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 远程serverFTP配置
*
* @return SNFtpUtil ftp帮助类
* @throws IOException
*/
public SNFtpUtil popFtpConfigSERVER_SIT(String ip, String port,
String user, String password, String path) throws IOException
{
SNFtpUtil ftp = new SNFtpUtil();
ftp.setServer(ip);
if (StringUtils.isNotEmpty(port))
ftp.setPort((new Integer(port)).intValue());
ftp.setUser(user);
ftp.setPassword(password);
ftp.setPath("/");
try {
ftp.connectServer();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("before path is" + path);
ftp.cd(path);
System.out.println("after path is" + path);
return ftp;
}
/**
* 删除文件,可以是文件或文件夹
*
* @param fileName
* 要删除的文件名
* @return 删除成功返回true,否则返回false
*/
public boolean delete(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("删除文件失败:" + fileName + "不存在!");
return false;
} else {
if (file.isFile())
return deleteFile(fileName);
else
return deleteDirectory(fileName);
}
}
/**
* 删除单个文件
*
* @param fileName
* 要删除的文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() && file.isFile()) {
if (file.delete()) {
System.out.println("删除单个文件" + fileName + "成功!");
return true;
} else {
System.out.println("删除单个文件" + fileName + "失败!");
return false;
}
} else {
System.out.println("删除单个文件失败:" + fileName + "不存在!");
return false;
}
}
/**
* 删除目录及目录下的文件
*
* @param dir
* 要删除的目录的文件路径
* @return 目录删除成功返回true,否则返回false
*/
public boolean deleteDirectory(String dir) {
// 如果dir不以文件分隔符结尾,自动添加文件分隔符
if (!dir.endsWith(File.separator))
dir = dir + File.separator;
File dirFile = new File(dir);
// 如果dir对应的文件不存在,或者不是一个目录,则退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
System.out.println("删除目录失败:" + dir + "不存在!");
return false;
}
boolean flag = true;
// 删除文件夹中的所有文件包括子目录
File[] files = dirFile.listFiles();
for (int i = 0; i
分享到:
相关推荐
ftp工具类,构造方法初始化类,连接ftp,列出所有文件内容,下载文件
FTP 工具类,赚钱积分下载东西,谢谢各位!谢谢各位!
ftp工具类,帮助你很容易的实现ftp功能
ftp操作工具类,用户ftp文件的添加,删除,等操作!
java操作FTP工具类:实现基本断点上传下载、实现上传下载进度汇报、实现中文目录创建及中文文件创建,添加对于中文的支持
对于初学者来说,理解并使用这样的FTP工具类可以帮助他们快速掌握FTP操作,避免了重复编写相同功能的代码。同时,这个工具类也展示了如何在Java中利用第三方库(如Apache Commons Net)来扩展Java标准库的功能。 ...
ftp 上传时,用到的工具类,项目上配置好ftp服务器后,controller可以方便的调用此工具类进行上传
FTP工具类,包括:文件夹上传下载,文件删除(包括非空文件夹),重命名等操作 基本的操作应该都有
java的ftp工具类,需要的自行下载查看,有切换目录,创建目录方法。
FtpUtil是为简化FTP操作而编写的实用工具类,它封装了连接、登录、文件操作等常用方法。例如,`connectToFtpServer`方法用于建立与FTP服务器的连接,`login`方法用于用户认证,`uploadFile`和`downloadFile`方法则...
9. 错误处理和关闭连接:在使用FTP工具类时,要确保正确处理网络错误和异常,并在完成操作后关闭FTP连接,释放资源。 10. 安全性考虑:尽管传统的FTP协议传输数据时不加密,但有更安全的SFTP(SSH File Transfer ...
本知识点主要集中在如何使用Java实现一个FTP下载工具类,以便在Android应用程序中集成这一功能。以下是对`DownloadFTPUtil.java`文件中可能包含的代码和相关知识点的详细解释。 1. **FTP客户端库**:在Android中,...
Apache FTPClient操作FTP工具类
接下来,我们将深入探讨FTP工具类的主要功能、使用方法以及源码分析。 **1. FTPClient类** FTPClient是Apache Commons Net的核心类,它实现了FTP协议的大部分功能。通过这个类,我们可以连接到FTP服务器,执行登录...
对于这个FTP工具类,由于在MRC下编写,使用时需要注意手动处理对象的引用计数。如果项目中其他部分使用了ARC,可以借助`__bridge`、`__bridge_transfer`等转换关键字来兼容MRC和ARC的混编。 具体使用示例可能如下:...
在本文中,我们将深入探讨如何利用这个库开发一个FTP工具类,以便在Java应用程序中进行文件上传、下载和其他FTP操作。 首先,我们需要了解FTP的基本概念。FTP是一种用于在网络上进行文件传输的标准协议。它允许用户...
采用java实现FTP文件的上传下载,包含文件以及文件夹上传下载,新建文件夹等基本相关操作,不会出现文件名的中文乱码,内含demo相关测试以及jar包,可直接导入使用,采用MyEclipse8.5,jdk1.6亲测无问题
jdk1.7以上专用FTP工具类,本人花了半天时间调试通过,拿来即用,具体用法详见main函数。
java上传ftp服务器工具类,提供完成的方法,直接调用即可
在软件开发中,FTP工具类通常包含了连接、登录FTP服务器,上传、下载文件,创建、删除目录等常见操作,使得开发者无需从零开始编写这些功能,可以直接调用预设的方法来实现相关功能,提高了开发效率。 FTP工具类的...