import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import sun.net.TelnetOutputStream;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;
public class download ...{
String localfilename;
String remotefilename;
FtpClient ftpClient;
// server:服务器名字
// user:用户名
// password:密码
// path:服务器上的路径
public void connectServer(String ip, int port, String user,
String password, String path) ...{
try ...{
ftpClient = new FtpClient();
ftpClient.openS ......
1、类型模板 Class:
物以类聚:
我们可以用class Person{ } class Animal{ }来描述一类人或一类动物;
那么再想一下,我们是不是可以用class Class{ } 来抽象描述类呢?
答案时可以的,这就是jdk中的 Class 类(类型模板),
Class类也可以简单的理解为描述类的类;
我们得到一个类的类型模板就像得到了一个人的DNA,
DNA中包含的一个人的所有外部形态特征,
某个类的Class类型模板中也就包含的该类的所有特征(如类名、包名、方法……等) 。
所以我们 只要得到了一个类的类型模板,就能将一个类剖析的很清楚。
2、获取Class类型模板对象的方法:
(1):通过对象调用getClass()方法创建。
(2):利用Class类中的forName()方法来创建。
(3):利用类型名(类名)来创建。
3、通过反射方法动态来获取类中的方法以及构造函数(五步)。
(1).先获取类型 ......
以下代码能否编译通过,如果不能,请说明理由,如果能,请说明结果。
public class a {
{
System.out.println("AAA");
}
a() {
System.out.println("BBB");
}
{
System.out.println("CCC");
}
class aa extends a {
{
new a();
System.out.println("DDD");
}
aa aa() {
return new aa();
}
aa() {
super();
System.out.println("FFF");
}
void a() {
new a();
System.out.println("GGG");
}
}
a(a a) {
System.out.println("HHH");
}
aa aa(){
System.out.println("III");
aa aa = new aa();
return aa;
}
static {
System.out.println("JJJ");
}
public static void main(String[] args) {
System.out.println("KKK");
new a(new a()).aa().aa().a();
System.out.println("LLL");
}
}
......
这里,Java的读文件和写文件都是基于字符流的,主要用到下面的几个类:
1、FileReader----读取字符流
2、FileWriter----写入字符流
3、BufferedReader----缓冲指定文件的输入
该类的方法有:
void close()
关闭该流。
void mark(int readAheadLimit)
标记流中的当前位置。
boolean markSupported()
判断此流是否支持 mark() 操作(它一定支持)
int read()
读取单个字符。
int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
String readLine()
读取一个文本行。
boolean ready()
判断此流是否已准备好被读取。
void reset()
&nb ......
转自InfoQ,作者 Charles Humble 译者 张龙
本月3日Sun的J2SE 5.0实现已终结服务周期(End of Service Life,即EOSL),这一天也是最后的一次5.0更新发布日期(J2SE 5.0 Update 22)。寻求Sun支持的用户可以选择升级到Java 6或是订阅Sun的Java for Business程序。
Sun提供了多种多样的Java付费支持。Java经典支持(classic support)涵盖了从产品发布之日起3年内的支持,它分为两类:标准支持和高级支持。标准支持提供了工作时间12x5的覆盖面与4个小时的响应时间SLA,高级支持提供了24x7的覆盖面与即时响应。Java经典支持的费用为每年$15,000起,随着组织规模的增加费用也随之上升,对于超大型企业费用可以达到每年$250,000。
扩展支持是针对那些达到EOSL的Java版本来说的,用户可以通过Sun的Java for Business程序获得该支持,支持涵盖了Java 1.4.2、5及6版本。Java for Business合同将Java支持扩展到了15年,这意味着Java 1.4.2支持将一直持续到2017年。在扩展支持期间,Sun会继续提供安全补丁与更新以支持新版操作系统。Java for Business具有如下四种情形:
只读访问。每季度用户可以下载安全补丁、bug修复及新操作系统支持版本。这些下载项都是二进制形式的, ......
这是一个C/S之间通信的例子,在JDK1.4下测试通过.
//服务器端源程序tcpserver.java
import java.io.*;
import java.net.*;
public class tcpserver
{
public static void main(String[] args) throws IOException
{
ServerSocket svrsoc=null;
Socket soc=null;
DataInputStream in=null;
PrintStream out=null;
InetAddress clientIP=null;
String str=null;
try
{
svrsoc=new ServerSocket(8000);
System.out.println("Server start....");
& ......