import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
import sun.security.action.OpenFileInputStreamAction;
/**=========================================================
* 文件: .MyFtpTest.java
* 所含类: MyFtpTest.java
* 修改记录:
* 日期 作者 内容
* =========================================================
* Jul 5, 2010 yeliangbiao 创建文件,实现基本功能
*/
public class MyFtpTest {
public static void main(String[] args) {
//upload
MyFtpTest ftpTest = new MyFtpTest();
String serverUrl = "127.0.0.1";
String userName = "h";
String passWord = "123";
String uploadFile = "C:\\Documents and Settings\\yelb\\桌面\\改后的domXml.java";
String serverPath = "d:\\";
//上传文件到Ftp服务器
ftpTest.uploadToFtpServer(serverUrl , userName, passWord,
uploadFile, serverPath);
//从FTP服务器上下载文件
ftpTest.downloadFormFtp(serverUrl , userName, passWord,
"毕业生鉴定.doc", serverPath);
//查看FTP服务器上的文件
}
public void uploadToFtpServer(String serverUrl, String userName,
String passWord, String uploadFile, String serverPath){
FtpClient ftpClient;
try {
ftpClient = new FtpClient();//打开ftp客户端
//登录到Ftp服务器
boolean isOpenSuccess = loginToFtpServer(ftpClient, serverUrl, userName, passWord);
if (isOpenSuccess) {//以下几步顺序不能错
//进入服务器的指定目录
ftpClient.cd(serverPath);
OutputStream outputStream = getFtpClientOutputStream(ftpClient, uploadFile);
InputStream inputStream = getLocalFileInputStream(uploadFile);
writeToFtpServer(outputStream, inputStream);
close(ftpClient,outputStream, inputStream);//关闭
}
} catch(Exception e) {
e.printStackTrace();
}
}
/**从Ftp服务器上下载文件*/
public void downloadFormFtp(String serverUrl, String userName,
String passWord, String downLoadFile, String serverPath) {
FtpClient ftpClient = null;
try {
ftpClient = new FtpClient();
boolean isOpenSuccess = loginToFtpServer(ftpClient, serverUrl, userName, passWord);
if (isOpenSuccess) {//以下几步顺序不能错
//进入服务器的指定目录
ftpClient.cd(serverPath);
OutputStream outputStream = new FileOutputStream(new File("E:\\FTP下载.doc"));
InputStream inputStream = getFtpClientInputStream(ftpClient, downLoadFile);
writeToLocal(inputStream, outputStream);
close(ftpClient,outputStream, inputStream);//关闭
}
} catch (Exception e) {
}
}
/** 登录到Ftp服务器 */
public boolean loginToFtpServer(FtpClient ftpClient,String serverUrl,
String userName, String passWord){
try {
ftpClient.openServer(serverUrl);
ftpClient.login(userName, passWord);
return true;
} catch (IOException e) {
System.out.println("Ftp 客户端打开失败");
return false;
}
}
/** 得到ftp客户端的输出流 */
public OutputStream getFtpClientOutputStream(FtpClient ftpClient,
String uploadFile) throws IOException{
ftpClient.binary();
//因为已经进入到了服务的目录,只要在目录下建一个文件就行,所以只要文件名,不要路径
File file = new File(uploadFile);
return ftpClient.put(file.getName());
}
/** 得到ftp客户端的输出流 */
public InputStream getFtpClientInputStream(FtpClient ftpClient,
String downLoadFile) throws IOException{
ftpClient.binary();
//因为已经进入到了服务的目录,只要在目录下建一个文件就行,所以只要文件名,不要路径
File file = new File(downLoadFile);
return ftpClient.get(file.getName());
}
/** 得到本地文件的输入流 */
public InputStream getLocalFileInputStream(String fileName)
throws FileNotFoundException{
return new FileInputStream(new File(fileName));
}
/** 向ftp服务器写入文件 */
public void writeToFtpServer(OutputStream outputStream,
InputStream inputStream) throws IOException {
byte[] bytes = new byte[1024];
while(inputStream.read(bytes) != -1) {
outputStream.write(bytes,0,bytes.length);
}
outputStream.flush();
}
/**下载文件到本地*/
public void writeToLocal(InputStream inputStream,
OutputStream outputStream) throws IOException{
byte[] bytes = new byte[1024];
while(inputStream.read(bytes) != -1) {
outputStream.write(bytes,0,bytes.length);
}
}
/** 关闭 */
public void close(FtpClient ftpClient, OutputStream outputStream,
InputStream inputStream) throws IOException {
if(inputStream != null) inputStream.close();
if(outputStream != null) outputStream.close();
if(ftpClient != null) ftpClient.closeServer();
}
}
分享到:
相关推荐
首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这表明我们要讨论的是使用Java编程语言来实现在FTP服务器上上传文件的过程。Java提供了一个名为`java.net.Socket`的基本网络连接类,但直接使用它来...
5. **文件上传**:使用`storeFile()`方法上传文件。你需要提供远程文件路径和一个InputStream,这个InputStream通常来自本地文件。 ```java File localFile = new File("C:\\local\\file.txt"); InputStream in = ...
Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步或者日志传输等场景中。本文将深入探讨如何使用Java编程语言来构建一个FTP文件上传系统,同时结合Log4j日志框架和命令行信息的处理。 首先...
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
上传小于 1M 文件速度要比用 FTP 协议上传文件略快。但对于批量及大文件的传输可能无能为力。后来决定采用 FTP 协议上传文件大于 1M 的文件速度比 HTTP 快。文件越大,上传的速度就比 HTTP 上传的速度快数倍。 二、...
7. **上传文件**:`ftp.storeFile(remoteFilePath, fis);` 这里`remoteFilePath`是服务器上文件的目标路径。 8. **关闭连接**:操作完成后,记得关闭连接和流:`ftp.disconnect();` 和 `fis.close();` 在`...
在`TestFtpUpload`文件中,可以编写单元测试或集成测试来验证FTP上传和下载功能。例如,你可以创建一个测试类`FtpOperationsTest`,包含如下方法: ```java import org.junit.jupiter.api.Test; import org.apache....
这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...
以上就是关于"java实现ftp上传jar包"的相关知识点,涵盖了FTP协议、相关库的使用、JAR文件的处理以及基本的Java FTP操作。在实际项目中,你可能还需要考虑其他因素,如连接超时、重试策略、文件权限管理等。
Java,FTP,用Java实现FTP批量大文件上传下载
java使用FTP上传文件,非常实用 包括创建ftp链接,上传
在Java中实现FTP上传,首先需要创建FTPClient对象,然后连接到FTP服务器,登录后设置工作目录。将要上传的文件转换为二进制流,并调用`storeFile()`方法。注意处理异常和确保文件传输完成后关闭流。 四、FTP下载 ...
用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
最后,我们可以上传文件了。假设我们有一个名为`fileToUpload.txt`的本地文件,我们可以这样上传: ```java FileInputStream fis = null; try { fis = new FileInputStream("fileToUpload.txt"); boolean success...
总的来说,使用Java实现FTP上传和下载涉及网络通信、文件操作和错误处理等多个方面的知识。通过"ftpLoadDown.jar"库,我们可以简化这个过程,使得开发者可以专注于业务逻辑,而无需关心底层的FTP协议细节。在实际...
在Java中实现FTP(文件传输协议)上传和下载文件功能,通常会使用Apache Commons Net库。这个库提供了FTPClient类,使得与FTP服务器交互变得简单。以下是对代码中涉及的知识点的详细解释: 1. **Apache Commons Net...