|
真爱的事业和真正的爱情一生只有一次,都值得我们温柔地相待,因为那种感觉是永远都无法复制的, 这世界真正属于你的东西其实并不多,你不好好珍惜,它便会离你而去,包括机遇,包括爱情,包括生命。 不要找任何理由, 当幸福在你身边的时候就抓住它,你就一定会很幸福! |
时 间 记 忆 |
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
blog名称:玻璃杯中的花生壳 日志总数:162 评论数量:249 留言数量:1 访问次数:824927 建立时间:2004年11月4日 |
 | | |
|
|
输入输出流 在Java中,我们把能够读取一个字节序列的对象称作一个输入流;而我们把够写一个字节序列称作一个输出流。它们分别由抽象类 InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java 引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。 Java.io包简介 JDK标准帮助文档是这样解释Java.io包的,通过数据流、序列和文件系统为系统提供输入输出。 InputStream类和OutputStream类 InputStream类是所有输入数据流的父类,它是一个抽象类,定义了所有输入数据流都具有的共通特性。 java.io.InputStream的方法如下: public abstract read()throws IOException 读取一个字节并返回该字节,如果到输入源的末则返回-1。一个具体的输入流类 |
|
Java语
言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的
内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个
简要的介绍。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样,如下图:
![]() |
|
由于手头有个项目需要用的Java的输入输出操作,
所以,啃了几天书,对Java的流技术有些了解,不过,还是有很多不是很明白,下面是我看书整理的一些笔记,严格的说应该不是原创,我贴出来只是希望对大
家有一些帮助
1、Java拥有一个完整的流类型,总数超过60,而四个抽象类构成了这些类的基础
InputStream和OutputStream读写以单字节为基础的字节数据流;
Reader和Writer读写以双字节的Unicode字符为基础的字节数据流;
2、二进制数据的读写
DataInputStream和DataOutputStream
可以完成对所有基本Java类型的读写;
FileInputStream和FileOutputStream
对一个磁盘文件涉及的数据流进行输入输出处理,是字节级的读写操作;
3、Java的流类型中按职责分有两类:
(1)从文件或者一些特殊地方读入字节数据(如Fil |
|
一.File Class
1. class File对象描述了所指定路径下的文件和目录的信息。通过File对象,可以查看某个路径下的文件和目录信息,并可操作路径下的文件和目录。
|
|
一. Input和Output 1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型: 1.1 以字节为导向的stream 以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型: 1) input stream: 1) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用 2) StringBufferInputStream:把一个String对象作为InputStream 3) FileInputStream:把一个文件作为InputStream,实现对文件的读取操作 4) PipedInputStream:实现了pipe的概念,主要在线程中使用 5) SequenceInputStream:把多个InputStream合并为一个InputStream 2) Out str |
|
代理模式是一个在面向对象编程中重要而广泛被使用的设计模式。JDK1.3中已经介绍了Proxy,你在Java使用过Proxy吗?动态代理类实现了在
运行时所指定的一组接口。在运行时,通过使用InvocationHandler来提供代理的行为。因此,Proxy是在JAVA反射包中一个重要的类,
并且广泛地用于许多JAVA应用程序中。
Proxy的一个限制是它仅仅接受接口。在某些情况下,你不仅需要使用代理模式来代理接口,而且也需要用它来代理抽象类,甚至具体的类。
本文介绍了动态委托(Dynamic Delegation),它能够创建运行时接口和类的代理。
Proxy概述
在JDK1.3中, java.lang.reflect包增加了Proxy类。它能够创建一个具体类,这个类实现了所有在运行时指定的所有接口。动态生成的类将所有定义在接口中的方法调用重定向到InvocationHandler。
给定两个接口,Idel1和Ide |
|
ava反射包中的Proxy类通过创建一个类的代理,让我们轻松地拦截该类实例的方法,甚至可以改变方法的行为。下面是使用Proxy的一个简单例子。主要有4步:定义接口
|
|
|
特此声明这些资料的原始内容来自www.java.sun.com,本人只是对其内容在个人的理解的基础上,进行翻译和整理。
一.概述
Reflection API可以使JAVA代码动态的查询和操作正在运行的JAVA类或者接口。Reflection 包含许多的类,例如Method类,该类可以在java.lang.reflect包中找到。
使用Reflection 中的类需要三个步骤:
1.获取一个要操作的类的对象,该对象属于java.lang.object包,该对象代表一个正在运行的一个类或接口。下面的三个方法是常用的获取类对象的方法:
(1) Class c=Class.forname(“java.lang.String”);
使用.forname方法加载一个类,这里是字符串类,从而获得一个与该类对应的类对象。
(2 |
|
Java 1.3引入了名为“动态代理类”(Dynamic Proxy
Class)的新特性,利用它可为“已知接口的实现”动态地创建包装器(wrapper)类。1.3版本问世以前,当我首次听说当时正在提议的动态代理类
时,还以为它只是一种用来吸引人的眼球的特性。虽然把它包括到语言中是一件好事,但我却想不出它有任何实际用处。带着这一成见,我试着用动态代理写了一个
示例程序,却惊讶于它的巨大威力,并当即决定把它放到我的工具箱中,以便在将来的项目中使用。此后,我不断体验到它的好处,它总是能用正确的方法来做你想
要做的事情!
假如没有动态代理
深入探索动态代理类之前,先来看看在某些情况下,假如没有动态代理类会是什么样子:
public interface Robot { void moveTo(int x, int y); void workOn(Project p, Tool t); }
public class MyRobot implements Robot { public |
|
(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。
(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet。
(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型。
(4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型。
(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防 |
| | | |
|