各种流的操作

缓冲流的作用:

   如果不用缓冲流的话,程序是读一个数据,写一个数据。这样在数据量大的程序中非常影响效率。
缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了
缓冲流:
字节缓冲流:BufferedInputStream bui=new BufferedInputStream(new InputStream());
         BufferedOnputStream;
字符缓冲流 BufferedReader ,BufferedWriter;


关于各种流的操作规律:

之所以要弄清楚这个规律是因为对象太多,开发时不知道用哪个对象合适。因此只需要明确以下四点:


1,明确源和目的:                                                                   


源:InputStream(字节流)  Reader(字符流)


目的:OutStream(字节流) Writer(字符流)

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

                                                                                                                                     例如1:若是纯文本数据:源 Reader  


      源:是 Reader                                                                                                           目的是 Writer                                 


          否InputStream                                                          


   目的  是 Writer                                                                                                         设备硬盘:File  


         否 OutStream                                                                                                   就有  FileReader in=new FileReader("路径");


                          到这里就可以明确是否用哪个体系了                                                        FileWriter out=new FileWriter("路径"); 


3,明确具体的设备                                                                                                     

                                                                                                                                       需要高效功能(缓冲流):


源。键盘:System.in     硬盘:file    内存: 数组     网络:Socket流                                 BufferedReader bufi= new BufferedReader(FileReader("路径"));


目的。控制台:System.out  硬盘:File 内存:数组  网络:Socket流                                   BufferedWriter bufw= new BufferedWriter(FileWriter("路径"));




4,是否需要其它额外功能:


是否需要高效(缓冲区):buffer




例二:读取键盘录入(字节)信息,并写入到一个文件中。需要将字节流转换成字符流,还需要高效的功能

1,明确源和目的:   

源:InputStream(字节流)  Reader(字符流)


目的:OutStream(字节流) Writer(字符流)

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

 源:是 Reader        

 目的  是 Writer  

 

 3,明确具体的设备    

源:键盘 System.in

目:硬盘 File

        InputStream in=System.in;   

       FileWriter out=new FileWriter("路径");

4,是否需要其它额外功能:

  需要,将字节转换成字符

       InputStreamReader in=new  InputStreamReader(System.in);

         FileWriter out=new FileWriter("路径");

需要高效的缓冲区: BufferedReader bufi=new BufferedReader(new  InputStreamReader(System.in));

                              BufferedWriter bufw=new BufferedWriter(new FileWriter("路径"));

 
原文地址:https://www.cnblogs.com/yupeter007/p/4584360.html