IO流之缓冲流和流的操作规律

 缓冲流

 

 字节缓冲流

 

字节缓冲流根据流的方向,共有2

 

写入数据到流中,字节缓冲输出流 BufferedOutputStream

 

读取流中的数据,字节缓冲输入流 BufferedInputStream

 

 

 

它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度

 

一个字节一个字节的复制文件

IO流之缓冲流和流的操作规律_第1张图片

 

 一个字节数组一个字节数的复制文件

IO流之缓冲流和流的操作规律_第2张图片

 

 

字符缓冲流

字符缓冲输入流 BufferedReader

字符缓冲输出流 BufferedWriter

完成文本数据的高效的写入与读取的操作

写入和换行:

IO流之缓冲流和流的操作规律_第3张图片

 

 读出:

IO流之缓冲流和流的操作规律_第4张图片

 

 字符缓冲流复制文本

一个字符一个字符的复制

IO流之缓冲流和流的操作规律_第5张图片

 

 

一个字符数组一个字符数组的复制

IO流之缓冲流和流的操作规律_第6张图片

 

 

流的操作规律

 

明确一:要操作的数据是数据源还是数据目的。

 

源:InputStream    Reader

 

目的:OutputStream Writer

 

先根据需求明确要读,还是要写。

 

 

 

明确二:要操作的数据是字节还是文本呢?

 

源:

 

字节:InputStream

 

文本:Reader

 

目的:

 

字节:OutputStream

 

文本:Writer

 

已经明确到了具体的体系上。

 

 

 

明确三:明确数据所在的具体设备。

 

源设备:

 

硬盘:文件  File开头。

 

内存:数组,字符串。

 

键盘:System.in;

 

网络:Socket

 

目的设备:

 

硬盘:文件  File开头。

 

内存:数组,字符串。

 

屏幕:System.out

 

网络:Socket

 

完全可以明确具体要使用哪个流对象。

 

 

 

明确四:是否需要额外功能呢?

 

额外功能:

 

转换吗?转换流。InputStreamReader(读) OutputStreamWriter(写)

 

高效吗?缓冲区对象。BufferedXXX

 

     InputStream字节流  读

 

       FileInputStream 字节流读

 

       BufferedInputStream   缓冲字节流读

 

 

 

OuputStream字节流  写

 

   FileOutputStream   字节流写

 

   BufferedOuputStream   缓冲字节流写

 

 

 

 

 

Writer  字符流 写

 

  OutputStreamWriter 字符 转换流 写

 

     FileWriter 字符流 写

 

      BufferedWriter  字符缓冲流 写

 

 

 

Reader 字符流 读

 

  InputStreamReader  字符转换流 读

 

     FileReader 字符流 读

 

 BufferedReader 字符缓冲流 读

你可能感兴趣的:(IO流之缓冲流和流的操作规律)