流的操作规律

IO流中对象很多,解决问题(处理设备上的数据时)到底该用哪个对象呢?  

把IO流进行了规律的总结(四个明确):

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

源: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

原文地址:https://www.cnblogs.com/zzq123/p/10222224.html