资源简介
Java实现与FTP服务器的数据传输。
其中包含了两种实现方法。详情请参见本人博客:
http://blog.csdn.net/lemon_tree12138/article/details/49777467
代码片段和文件信息
package com.ftp.sockettran;
import org.ftp.transmission.config.Config;
import org.ftp.transmission.tools.Tools;
import java.io.*;
import java.net.Socket;
import java.util.StringTokenizer;
/**
* 基于Socket的FTP数据传输测试
* Created by Naga on 2015/11/11.
*/
public class FtpSocketClient {
Socket mFtpClient = null;
BufferedReader mReader = null;
BufferedWriter mWriter = null;
/**
* 连接FTP服务器
*/
public void connectFtp() {
try {
mFtpClient = new Socket(Config.FTP.HOST_IP Config.FTP.HOST_PORT);
mReader = new BufferedReader(new InputStreamReader(mFtpClient.getInputStream()));
mWriter = new BufferedWriter(new OutputStreamWriter(mFtpClient.getOutputStream()));
sendCommand(“USER “ + Config.FTP.FTP_USERNAME);
sendCommand(“PASS “ + Config.FTP.FTP_PASSWD);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 关闭FTP的Socket连接
*/
public void disconnectFtp() {
if (mFtpClient == null) {
return;
}
if (!mFtpClient.isConnected()) {
return;
}
try {
mFtpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获得Socket的连接状态
* @param socket
* 待检查的socket
* @return
*/
private boolean socketStatus(Socket socket) {
if (socket == null || !socket.isConnected()) {
return false;
}
return true;
}
/**
* 向FTP服务器发送命令
* @param command
* FTP命令
* @throws IOException
*/
private void sendCommand(String command) throws IOException {
if (Tools.StringTools.isEmpty(command)) {
return;
}
if (mFtpClient == null) {
return;
}
mWriter.write(command + “\r\n“);
mWriter.flush();
}
/**
* 下载文件
* @param localPath
* 本地文件路径
* @param ftpPath
* 服务器文件路径
* @throws IOException
*/
public void downloadFile(String localPath String ftpPath) throws IOException {
// 进入被动模式
sendCommand(“PASV“);
// 获得ip和端口
String response = readNewMessage();
String[] ipPort = getIPPort(response);
String ip = ipPort[0];
int port = Integer.parseInt(ipPort[1]);
// 建立数据端口的连接
Socket dataSocket = new Socket(ip port);
sendCommand(“RETR “ + ftpPath);
// 下载文件前的准备
File localFile = new File(localPath);
InputStream inputStream = dataSocket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream(localFile);
// 下载文件
int offset;
byte[] bytes = new byte[1024];
while ((offset = inputStream.read(bytes)) != -1) {
fileOutputSt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-11-12 16:48 TransmissionOnFTP\
目录 0 2015-11-12 16:48 TransmissionOnFTP\.idea\
文件 17 2015-11-11 00:21 TransmissionOnFTP\.idea\.name
文件 686 2015-11-11 00:21 TransmissionOnFTP\.idea\compiler.xm
目录 0 2015-11-12 16:48 TransmissionOnFTP\.idea\copyright\
文件 76 2015-11-11 00:21 TransmissionOnFTP\.idea\copyright\profiles_settings.xm
文件 660 2015-11-11 13:49 TransmissionOnFTP\.idea\encodings.xm
目录 0 2015-11-12 16:48 TransmissionOnFTP\.idea\libraries\
文件 229 2015-11-11 00:55 TransmissionOnFTP\.idea\libraries\commons_net_2_2.xm
文件 873 2015-11-11 19:06 TransmissionOnFTP\.idea\misc.xm
文件 274 2015-11-11 00:21 TransmissionOnFTP\.idea\modules.xm
文件 8792 2015-11-11 00:24 TransmissionOnFTP\.idea\uiDesigner.xm
文件 52533 2015-11-12 16:48 TransmissionOnFTP\.idea\workspace.xm
目录 0 2015-11-12 16:49 TransmissionOnFTP\data\
目录 0 2015-11-12 16:48 TransmissionOnFTP\libs\
文件 212453 2010-11-17 00:53 TransmissionOnFTP\libs\commons-net-2.2.jar
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\com\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\
文件 6707 2015-11-11 10:47 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\Client.class
文件 6634 2015-11-11 11:09 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\FTPRead.class
文件 6116 2015-11-12 16:36 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\FtpSocketClient.class
文件 6119 2015-11-11 10:47 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\Server.class
文件 3718 2015-11-11 12:52 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\UpdateReceiver$DownloadThread.class
文件 2533 2015-11-11 12:52 TransmissionOnFTP\out\production\TransmissionOnFTP\com\ftp\sockettran\UpdateReceiver.class
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\org\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\org\ftp\
目录 0 2015-11-12 16:48 TransmissionOnFTP\out\production\TransmissionOnFTP\org\ftp\transmission\
............此处省略25个文件信息
相关资源
- Java 文件操作实现 通讯录
- 通讯录管理系统java
-
org.springfr
amework.context.support-3.0.5.R - JAVA国密算法pnc,sm2,sm3,sm4,jar包直
- 智能家居_安卓java程序源码
- java-unrar-0.3.jar以及commons-logging-1.1.1.
- javax.jar包
- ftp程序源码
- java实现ftp服务器端配套程序
- java通过JDBC链接SQLServer2016
- 基于javaweb 的bootstrap table使用案例
- Java和Highcharts实现折线图
- myeclipse 导出jar
- Java实现Map集合二级联动
- FTPUpload上传文件 进度条显示进度
- Java画图 源代码
- java3D安装教程
- java汇率转换
- Java课程设计-简单计算器含完整源代码
- java 课程设计仓库管理系统Java+MySQL
- java和SqlServer的Swing项目
- 职工管理系统 java SQL
- java中文汉字笔画排序
- Java实现循环冗余码CRC生成算法源代码
- 找出所有最长公共子序列算法代码
- java答辩ppt
- JAVA ATM
- java小游戏《饲养宠物》源代码
- java实现导出csv文件并上传sftp
- thinkinJava.zip
评论
共有 条评论