Java的FTP协议级客户端实现详解
10.2.4.3 例子3:网络应用层协议的开发
清华大学出版社《Java程序员,上班那点事儿》作者:钟声——第10章《高手有多高菜鸟有多菜》部分节选。
大家也许都用过FTP上传下载工具,比如“LeapFTP”这个工具是一个很方便的FTP服务器上传下载工具,如图所示。这个工具很方便,输入用户名密码以后,就可以看到FTP服务器端的文件列表,便于进行上传与下载操作。
你是否试过自己用Java编写一个FTP的文件上传与下载应用程序?
Java也可以开发出这样的程序来,并不复杂,我们先看看,利用Java的FTP类工具包制作FTP应用程序的开发是怎么做的,请看如下程序:
import sun.net.*;
import sun.net.ftp.*;
public class FTP {
public static void main(String[] args) {
String server="192.168.0.12"; //输入的FTP服务器的IP地址
String user="useway"; //登录FTP服务器的用户名
String password="!@#$%abce"; //登录FTP服务器的用户名的口令
String path="/home/useway"; //FTP服务器上的路径
try {
FtpClient ftpClient=new FtpClient(); //创建FtpClient对象
ftpClient.openServer(server); //连接FTP服务器
ftpClient.login(user, password); //登录FTP服务器
 
相关文档:
反射、Proxy和元数据是Java最强的三个特征,再加上CGLib (Code Generation Library)
和ASM,使得Java虽然没有Ruby,Python般后生可畏,一样能做出强悍的框架。
Proxy
可以看作是微型的AOP,明白提供了在继承和委托之外的第三个代码封装途径,只要有足够的想象力,可 ......
JAVA与C++的一个很大区别就是JAVA不需要程序员去分配,释放内存。这在很大程度上减少了程序员的工作量,但或许正因为这个原因我们经常看到一些编程错误。
例1:
从数据库查询出结果list,然后做循环处理。
......
SCJP5学习笔记
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。
线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。
下面通过一个示例性的 ......
为什么使用volatile比同步代价更低?
同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能.
而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低.
volatile原理是什么?
volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见j ......