资源简介
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个文件信息
相关资源
- Windows bat 设置Java环境变量
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
评论
共有 条评论