java笔记 字节流和其他常用流对象

---------- android培训java培训、java学习型技术博客、期待与您交流! ------------

与字符流不同的是,使用的是系统默认的编码方式!

     写入流写入数据的时候不用使用flush()方法刷

     可以读写媒体文件,尽量不用字符流读写媒体文件

流操作的基本操作规律:

      通过两个明确来完成:

             1.明确源和目的。

                     源:输入流 InputStream Reader

                     目的:输出流 OutputStream Writer

             1. 1操作的数据是否是纯文本

                    是:字符流

                    否:字节流

              1.2当体系明确后,再明确要使用哪个具体的对象

                     通过设备来进行区分:

                            源设备:内存,硬盘,键盘

                            目的设备:内存,硬盘,控制台

例如:将一个文本文件中的数据储存到另一个文件中,复制文件。

  明确源:硬盘文本

      1.读取流 InputStream Reader

      1.1纯文本?

              是,选择Reader

 

      1.2接下来明确要使用体系中的哪个对象。

              明确源设备:硬盘上的文件

                 Reader体系中可以操作文件的对象时FileReader
                 是否需要提高效率:是!加入Reader体系中缓冲区BufferedReadr

                 FiledReader fr = new FileReader("a.txt");

                 BufferedReadr bufr = new  BufferedReadr(fr);

            

    明确目的:硬盘文本

          1.输出流OutputStream Writer

          1.1纯文本?

               是,选择Writer

           1.2设备:硬盘

                     Eriter体系中可以操作文件的对象FileWriter

                     是否需要提高效率:是!加入FileWriter体系中缓冲区BufferedWriter

                      FiledWriter fw = new FileWriter("b.txt");

                      BufferedWriter bufw = new  BufferedWriter(fw);

 

例如:需求:将键盘录入的数据保存到一个文件中

    明确需求:

          1.读取流都存在

          1.1纯文本?是(从键盘接受的就是纯文本)

          1.2设备:键盘对应的对象是System.in

                     不是选择Reader吗?System.in对应的不是字节流吗?

                     为了方便文本数据,将字节流转换成字符流

                     既然明确了Reader,那么就将System.in转换成Reader

                     用了Reader体系中转换流,InputStreamReader

                     InputStreamReader isr = new InputStreamReader(System.in);

                 是否需要提高效率:是!BufferedReadr

                 BufferedReadr bufr = new  BufferedReadr(isr);

     扩展:使用指定码表进行储存

     明确目的:

          1.1纯文本?是

          1.2设备:硬盘

                       一个文件,使用FileWriter

                                但是储存时需要按照指定码表,而指定的编码表只有转换流可以指定

                                所以要使用的对象是OutputStreamWriter,而该转换流对象要接受一个字节输出流,

                                还可以操作文件的字节输出流,FileOutputStream

                      OutputStreamWriter osw = new OutputStreamWriter(new  FileOutputStream("d.txt","utf-8"));

                      是否需要提高效率:是!

                      BufferedWriter bufw = new  BufferedWriter(osw);

                所以,转换流是字符和字节之间的桥梁,通常涉及到字符的编码的转换时使用!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值