java ftp 教程_Java 中两种ftp操作方式
最近看到几篇关于java中操作ftp的文章,所以想写一个总结贴,标记一下,方便以后应用。
首先,我们可以应用java中的ftp库,java中提供了一个ftpclient的类,提供了很多操作ftp的方法。
先上代码,一看便知,很简单,应用时只要传递相应的server,user,password等就行了。
import java.io.IOException;
import sun.net.*;
import sun.net.ftp.*;
public class FTP {
public static void main(String[] args) {
String ftpserver="server url";
String user="user";
String pwd="pwd";
String path="path";
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer(ftpserver);
echo(ftpClient.getResponseString());
ftpClient.login(user, pwd);
echo(ftpClient.getResponseString());
if (path.length() != 0) {
ftpClient.cd(path);
echo(ftpClient.getResponseString());
}
TelnetInputStream tis = ftpClient.list();
echo(ftpClient.getResponseString());
int c;
while ((c = tis.read())!= -1) {
System.out.print((char)c);
}
echo(ftpClient.getResponseString());
tis.close();
echo(ftpClient.getResponseString());
ftpClient.closeServer();
echo(ftpClient.getResponseString());
}
catch(IOException ex){
ex.printStackTrace();
}
}
static void echo(String response){
System.out.println("Response-----> " + response);
}
}
在其内部都是发送socket请求的,只是帮我们封装好了。我们只要用相应的方法就行了。
在每个方面调用后面我都打印了从服务器返回的内容,这样可以方便我们ftp协议的理解。
读者可以拷贝到本地运行一下,看看ftp到底是如何运行的。
为了更清楚的理解ftp协议,下来使用原始的socket来操作ftp。
ftp服务器一般是在21端口监听的一个�
java ftp 教程_Java 中两种ftp操作方式相关推荐
- java+map申明_Java中两种HashMap申明方式区别?
Map是HashMap的父类,第一种声明方式是:父类的引用指向子类的对象,是多态的一种表现形式:第二种是:使用本身引用.举个例子: 第一种声明方式是实现了多态,多态后就可以写出一段所有子类都通用的代码 ...
- java B锁_Java中15种锁的介绍
原标题:Java中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 1.公平锁 / 非公平锁 2.可重入锁 / 不可重入锁 3.独享 ...
- java string封装类_java中八种基本数据类型以及它们的封装类,String类型的一些理解...
在我们面试或者考试过程中经常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢? 首先,八种基本数据类型分别是:int.short.float.double.l ...
- java默认值_Java中八种基本数据类型的默认值
通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; fl ...
- java乘法表_Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...
- java list翻转_JAVA实现两种方法反转单列表
/***@authorluochengcheng * 定义一个单链表*/ classNode {//变量 private intrecord;//指向下一个对象 privateNode nextNod ...
- java cache教程_Java 中常用缓存Cache机制的实现
缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map ...
- java list 效率_Java中5种List的去重方法及它们的效率对比,你用对了吗?
01.使用两个for循环实现List去重(有序) /**使用两个for循环实现List去重(有序) * * @param list * */ public static List removeDupl ...
- java中两种异常类型_Java中的三种异常类型
java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...
最新文章
- 1、C++招聘笔试--C++中的C
- 2019天梯赛(总结-无题解)
- PHP Cookie处理
- Codeforces Round #669 (Div. 2)
- 如何在Spring Boot App中集成H2数据库
- adpater里写toast_如何在Android中显示Toast?
- linux 分区 备份软件下载,硬盘分区备份(Image For Windows)
- Shiro源码分析之Subject和SecurityManager
- linux安全加固_安全服务之安全评估与加固
- 几行代码创建属于你自己的SQL数据库
- 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
- AntV G6设置高亮
- 前端vs图片:2 图片深度、图片分类等基本信息
- 线性调频信号MATLAB仿真
- Python学习之字典练习(重复数字统计)
- 用java编写圆锥_用java中的graphics画圆锥的代码
- 常见路由器开源系统(固件)简介
- django MVT模式介绍
- 钉钉机器人怎么用java测试_钉钉机器人工具类
- 爆炸的符卡洋洋洒洒题解
热门文章
- Eclipse启动运行项目Debug弹窗:This kind of launch is configured to openthe debug perspective when it解决办法
- 【Redis学习】解决使用redisTemplate 时 存入redis 的key 出现 \xac\xed\x00\x05t\x00
- 什么是数据库,为什么要有数据库?
- UNIX的段错误和总线错误和Windows的保护性异常
- ios开发日记- 7 禁用搜狗键盘 使用系统键盘
- 吴晓波:未来十年,我们所认为的能力将荡然无存
- 一二三四五六七八酒十!
- Autoit3 下载
- 工业机器人喷涂实操工作站
- 周鸿祎:互联网的过去、现在和未来