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
相关文档:
计算机缓存的定义 :缓存是CPU的一部分,它存在于CPU中
就此可以说明 CPU中不可能存放大量的数据
所以java 的缓存 不是真正意义上的缓存
而且
缓存是为了解决CPU速度和内存速度的速度差异问题
内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数 ......
注:不适合web工程
1、利用System.getProperty()函数获取当前路径:
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("");//设定为当前文件夹
try{
System.out.println(directory. ......
Why NIO ?
http://onjava.com/pub/a/onjava/2002/09/04/nio.html?page=1
Java developers might ask: why introducing a new technology to handle sockets? What's wrong with the Java 1.3.x sockets? Suppose you would like to implement a server accepting diverse client connections. Suppose, as well, that you ......
package com.word.tools.pool;
import java.util.Vector;
import com.word.po.ObjectPool_Param;
import com.word.po.TyjkXmlPO;
public class TyjkXmlPool
{
/**对象池参数*/
private ObjectPool_Param ob_param;
/**存放对象的Vector*/
......
1. import java.text.DateFormat;
2. import java.text.ParseException;
3. import java.util.Date;
4.
5. /**
6. * @description 計算两个日期相差的天数
7. * @author ZhouJingxian
8. *
9. */
10. public class CountDate {
11.
12. ......