没有合适的资源?快使用搜索试试~ 我知道了~
java实现ftp的几种方式_java实现ftp的几种方式.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 185 浏览量
2022-06-10
01:17:42
上传
评论
收藏 74KB DOC 举报
温馨提示
试读
23页
java实现ftp的几种方式_java实现ftp的几种方式
资源推荐
资源详情
资源评论
java 实现 ftp 的几种方式(第 3 方包)
最近在做 ssh ,sftp。顺便总结一下 java 实现 ftp 的几种方式。
1、sun.net
import sun.net.ftp.*;
import sun.net.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
### FTP 远程命令列表<br>
USER### PORT### RETR### ALLO### DELE### SITE### XMKD### CDUP### FEAT<br>
PASS### PASV### STOR### REST### CWD#### STAT### RMD#### XCUP### OPTS<br>
ACCT### TYPE### APPE### RNFR### XCWD### HELP### XRMD### STOU### AUTH<br>
REIN### STRU### SMNT### RNTO### LIST### NOOP### PWD#### SIZE### PBSZ<br>
QUIT### MODE### SYST### ABOR### NLST### MKD#### XPWD### MDTM### PROT<br>
#### 在服务器上执行命令,如果用 sendServer 来执行远程命令(不能执行本地 FTP 命令)的话,
所有 FTP 命令都要加上<br>
######### ftpclient.sendServer("XMKD /test/bb"); //执行服务器上的 FTP 命令<br>
######### ftpclient.readServerResponse 一定要在 sendServer 后调用<br>
######### nameList("/test")获取指目录下的文件列表<br>
######### XMKD 建立目录,当目录存在的情况下再次创建目录时报错<br>
######### XRMD 删除目录<br>
######### DELE 删除文件<br>
* <p>Title: 使用 JAVA 操作 FTP 服务器(FTP 客户端)</p>
* <p>Description: 上传文件的类型及文件大小都放到调用此类的方法中去检测,比如放到
前台 JAVASCRIPT 中去检测等
* 针对 FTP 中的所有调用使用到文件名的地方请使用完整的路径名(绝对路径开始)。
* </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 静靖工作室</p>
* @author 欧朝敬 13873195792
* @version 1.0
*/
public class FtpUpfile {
### private FtpClient ftpclient;
### private String ipAddress;
### private int ipPort;
### private String userName;
### private String PassWord;
### /**
#### * 构造函数
#### * @param ip String 机器 IP
#### * @param port String 机器 FTP 端口号
#### * @param username String FTP 用户名
#### * @param password String FTP 密码
#### * @throws Exception
#### */
### public FtpUpfile(String ip, int port, String username, String password) throws
########### Exception {
####### ipAddress = new String(ip);
####### ipPort = port;
####### ftpclient = new FtpClient(ipAddress, ipPort);
####### //ftpclient = new FtpClient(ipAddress);
####### userName = new String(username);
####### PassWord = new String(password);
### }
### /**
#### * 构造函数
#### * @param ip String 机器 IP,默认端口为 21
#### * @param username String FTP 用户名
#### * @param password String FTP 密码
#### * @throws Exception
#### */
### public FtpUpfile(String ip, String username, String password) throws
########### Exception {
####### ipAddress = new String(ip);
####### ipPort = 21;
####### ftpclient = new FtpClient(ipAddress, ipPort);
####### //ftpclient = new FtpClient(ipAddress);
####### userName = new String(username);
####### PassWord = new String(password);
### }
### /**
#### * 登录 FTP 服务器
#### * @throws Exception
#### */
### public void login() throws Exception {
####### ftpclient.login(userName, PassWord);
### }
### /**
#### * 退出 FTP 服务器
#### * @throws Exception
#### */
### public void logout() throws Exception {
####### //用 ftpclient.closeServer()断开 FTP 出错时用下更语句退出
####### ftpclient.sendServer("QUIT\r\n");
####### int reply = ftpclient.readServerResponse(); //取得服务器的返回信息
### }
### /**
#### * 在 FTP 服务器上建立指定的目录,当目录已经存在的情下不会影响目录下的文件,这样
用以判断 FTP
#### * 上传文件时保证目录的存在目录格式必须以"/"根目录开头
#### * @param pathList String
#### * @throws Exception
#### */
### public void buildList(String pathList) throws Exception {
####### ftpclient.ascii();
####### StringTokenizer s = new StringTokenizer(pathList, "/"); //sign
####### int count = s.countTokens();
####### String pathName = "";
####### while (s.hasMoreElements()) {
########### pathName = pathName + "/" + (String) s.nextElement();
########### try {
############### ftpclient.sendServer("XMKD " + pathName + "\r\n");
########### } catch (Exception e) {
############### e = null;
########### }
########### int reply = ftpclient.readServerResponse();
####### }
####### ftpclient.binary();
### }
### /**
#### * 取得指定目录下的所有文件名,不包括目录名称
#### * 分析 nameList 得到的输入流中的数,得到指定目录下的所有文件名
#### * @param fullPath String
#### * @return ArrayList
#### * @throws Exception
#### */
### public ArrayList fileNames(String fullPath) throws Exception {
####### ftpclient.ascii(); //注意,使用字符模式
####### TelnetInputStream list = ftpclient.nameList(fullPath);
####### byte[] names = new byte[2048];
####### int bufsize = 0;
####### bufsize = list.read(names, 0, names.length); //从流中读取
####### list.close();
####### ArrayList namesList = new ArrayList();
####### int i = 0;
####### int j = 0;
####### while (i < bufsize /*names.length*/) {
########### //char bc = (char) names;
########### //System.out.println(i + "# " + bc + " : " + (int) names);
########### //i = i + 1;
########### if (names[i] == 10) { //字符模式为 10,二进制模式为 13
############### //文件名在数据中开始下标为 j,i-j 为文件名的长度,文件名在数据中的结束下标为
i-1
############### //System.out.write(names, j, i - j);
############### //System.out.println(j + "## " + i + "### " + (i - j));
剩余22页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功