黑马程序员 java基础之IO笔记


输入流和输出流相对于内存设备而言.

将外设中的数据读取到内存中:输入 将内存的数写入到外设中:输出。

字符流的由来: 其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。 在对这个文字进行操作。简单说:字节流+编码表

字节流的两个顶层父类: 1,InputStream  2,OutputStream.

字符流的两个顶层父类: 1,Reader 2,Writer

流体系的子类都以父类名作为后缀。 而且子类名的前缀就是该对象的功能。

字节流:

InputStream   

OutputStream

字节流: FileInputStream FileOutputStream BufferedInputStream BufferedOutputStream

字符流: Writer Reader FileReader FileWriter BufferedReader BufferedWriter

转换流:

InputStreamReader :字节到字符的桥梁。解码。

OutputStreamWriter:字符到字节的桥梁。编码。

流的操作规律: 需要四个明确即可。

1,明确源和目的(汇)  源:InputStream  Reader  目的:OutputStream  Writer

2,明确数据是否是纯文本数据。

 源:是纯文本:Reader   否:InputStream  

目的:是纯文本 Writer   否:OutputStream    

3,明确具体的设备。  

源设备:   硬盘:File   键盘:System.in   内存:数组   网络:Socket流     

目的设备:   硬盘:File   控制台:System.out   内存:数组   网络:Socket流

4,是否需要其他额外功能。

 1),是否需要高效(缓冲区);   是,就加上buffer.  

 2),转换。  

什么时候使用转换流呢?

 1,源或者目的对应的设备是字节流,但是操作的却是文本数据,可以使用转换作为桥梁。   提高对文本操作的便捷。

 2,一旦操作文本涉及到具体的指定编码表时,必须使用转换流 。  

posted @ 2013-05-14 17:50  xiewen3410  阅读(126)  评论(0编辑  收藏  举报