JAVA-基础(缓冲流-转换流-序列化流)

JAVA-基础(缓冲流-转换流-序列化流)

1.缓冲流?java

缓冲流,也叫高效流,是对4个基本的FileXxx 流的加强,因此也是4个流数组

字节缓冲流BufferedInputStreamBufferedOutputStream编码

 

字符缓冲流BufferedReaderBufferedWriterspa

2.原理?code

在建立流对象时,会建立一个内置的默认大小的缓冲区数组,经过缓冲区读写,减小系统IO次数,从而提升读写的效率。对象

复制一个300M的文件,普通io流可能速度在20分钟以上,缓冲流只须要几百毫秒。接口

3.构造方法?内存

public BufferedInputStream(InputStream in) :建立一个 新的缓冲输入流。it

 

public BufferedOutputStream(OutputStream out): 建立一个新的缓冲输出流。io

public BufferedReader(Reader in) :建立一个 新的缓冲输入流。

public BufferedWriter(Writer out): 建立一个新的缓冲输出流。

4.方法?

BufferedReader:public String readLine(): 读一行文字。

BufferedWriter:public void newLine(): 写一行行分隔符,由系统属性定义符号。

5.转换流?

按照某种规则,将字符存储到计算机中,称为编码

存储在计算机中的二进制数按照某种规则解析显示出来,称为解码

在IDEA中,使用FileReader 读取项目中的文本文件。因为IDEA的设置,都是默认的UTF-8编码,因此没有任何问题。可是,当读取Windows系统中建立的文本文件时,因为Windows系统的默认是GBK编码,就会出现乱码。

 

6.InputStreamReader?

是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定的字符集将其解码为字符。

7.构造方法?

InputStreamReader(InputStream in): 建立一个使用默认字符集的字符流。

InputStreamReader(InputStream in, String charsetName): 建立一个指定字符集的字符流。

8.OutputStreamWriter?

转换流java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符编码为字节.

9.构造方法?

OutputStreamWriter(OutputStream in): 建立一个使用默认字符集的字符流。

OutputStreamWriter(OutputStream in, String charsetName): 建立一个指定字符集的字符流。

10.序列化?

Java 提供了一种对象序列化的机制。用一个字节序列能够表示一个对象,该字节序列包含该对象的数据对象的类型对象中存储的属性等信息。字节序列写出到文件以后,至关于文件中持久保存了一个对象的信息。

反之,该字节序列还能够从文件中读取回来,重构对象,对它进行反序列化对象的数据对象的类型对象中存储的数据信息,均可以用来在内存中建立对象

11.ObjectOutputStream?

java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。

 

12.构造方法?

public ObjectOutputStream(OutputStream out): 建立一个指定OutputStream的ObjectOutputStream。

一个对象要想序列化,必须知足两个条件:

1该类必须实现java.io.Serializable 接口,Serializable 是一个标记接口,不实现此接口的类将不会使任何状态序列化或反序列化,会抛出NotSerializableException

 

2该类的全部属性必须是可序列化的。若是有一个属性不须要可序列化的,则该属性必须注明是瞬态的,使用transient 关键字修饰。

public final void writeObject (Object obj) : 将指定的对象写出。

13.ObjectInputStream?

ObjectInputStream反序列化流,将以前使用ObjectOutputStream序列化的原始数据恢复为对象。

14.构造方法?

public ObjectInputStream(InputStream in): 建立一个指定InputStream的ObjectInputStream。

public final Object readObject () : 读取一个对象。

对于JVM能够反序列化对象,它必须是可以找到class文件的类。若是找不到该类的class文件,则抛出一个 ClassNotFoundException 异常。

相关文章
相关标签/搜索