java IO
1.InputStream和OutputStream是用于读或写单个字节或者字节数组,我们很少用到它们的方法,它们之所以存在是因为别的类可以使用它们,以便提供更有用的接口。因此,我们很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能。
2.FilterInputStream和FilterOutputStream是用来提供装饰器类接口以控制特定输入输出流的两个类,分别自IO类库的InputStream和OutputStream继承而来。我们几乎每次都要对输入进行缓冲,所以IO库把无缓冲输入作为特殊情况。BufferedOutputStream是一个修改过的OutputStream,它对数据流使用缓冲技术,所以在输出时,我们可能会经常使用它。
3.Reader和Writer提供兼容Unicode与面向字符的IO功能,设计Reader和Writer继承层次就是为了国际化,在所有的IO操作中都支持Unicode。
有时候我们必须把来自于“字节”层次结构中的类和“字符”层次结构中的类结合起来使用。“适配器”类可以实现这一点:InputStreamReader可以把InputStream转成Reader,而OutputStreamWriter可以把OutputStream转换成Writer。
大多数场合,最明智的做法是尽量尝试使用Reader和Writer,不行再使用面向字节的类库。
4.RandomAccessFile是一个自我独立的类,直接从Object派生而来,因为RandomAccessFile拥有和别的IO类型本质不同的行为,可以在一个文件内向前和向后移动。RandomAccessFile不支持装饰,所以不能将其与InputStream和OutputStream子类的任何部分组合起来。getFilePointer():查找当前所处的文件位置;seek():用于在文件内移至新的位置;length():判断文件的最大尺寸;构造器第二个参数指示随机读(r),或者读写(rw),不支持只写。
5.典型用法。
(1)缓冲输入文件:缓冲用于提高读写速度。我们将所产生的引用传给一个BufferedReader构造器,由于BufferedReader也提供readLine()方法,所以这是我们的最终对象进行读取的接口。当readLine()返回null时,就达到了文件的末尾。例:BufferedReader in = new BufferedReader(new FileReader(filename));
(2)从内存输入:BufferedInputFile.read()用于读文件到内存。StringReader in = new StringReader(BufferedInputFile.read(filename));
(3)格式化的内存输入:要读取格式化数据可以使用DataInputStream,DataInputStream in = new DataInputStream(new ByteArrayInputStream(BufferedInputFile.read(filename).getBytes()));我们用DataI
相关文档:
java中基本数据类型按精度低高的排列顺序是
byte<short<int<long<float<double
1.当把级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换 ......
Oracle and Sun
http://www.oracle.com/events/productstrategy/index.html
Oracle + Sun: Java Strategy
http://oracle.com.edgesuite.net/ivt/4000/8104/9236/12630/lobby_external_flash_clean_480x360/default.htm
Oracle + Sun: Java Strategy
......
一、理解多线程
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通 ......