Java性能优化系列之五--JavaIO(三)

2014-11-23 23:56:40 · 作者: · 浏览: 2
rintStream:是一个字节打印流System.out对应的就是PrintStream。它的构造函数可以接收三种数据类型的值:字符串路径、File对象、OutputStream(当为System.out的时候即把输入显示到屏幕上)

PrintWriter:是一个字符打印流。构造函数可以接收四种类型的值。字符串路径、File对象(对于这两中类型的数据,还可以指定编码表。也即是是字符集)、OutPutSream、Writer(对于三、四类型的数据,可以指定自动刷新,注意:当自动刷新的值为true时,只有三个方法可以用:printlf、printf、format)

(2)管道流:PipedOutputStream和PipedInputStream。一般在多线程中通信的时候用。

(3)RandomAccessFile:该对象不是流体系中的一员,但是该队选中封装了字节流,同时还封装了一个缓冲区(字节数组),通过内部的指针来操作数组中的数据。该对象特点:只能操作文件和对文件读写都可以。多用于多线程下载。、

(4)合并流:可以将多个读取流合并成一个流。其实就是将每一个读取流对象存储到一个集合中,最后一个流对象结尾作为这个流的结尾。

(5)对象的序列化。ObjectInputStream和ObjectInputStream。

(6)操作基本数据类型的流对象:DataInputStream和DataOutputStream。

(7)操纵内存数组的流对象,这些对象的数据源是内存,数据汇也是内存:ByteArrayInputStream和ByteArrayOutputStream,CharArrayReader和CharArrayWriter。这些流并未调用系统资源,使用的是内存中的数组,所以在使用的时候不用close。

(8)编码转换:

在IO中涉及到编码转换的流是转换流和打印流,但是打印流只有输出。转换流是可以指定编码表的,默认情况下,都是本机默认的编码表,GBK。可以通过:Syetem.getProperty(“file.encoding”)得到。字符串到字节数组成为编码的过程,通过getBytes(charset)完成,从字节数组到字符串的过程是解码的过程,通过String类的构造函数完成String(byte[],charset).

(9)编码实例与解析:

(10)JavaNIO的Charset类专门用来编码和解码。