字节流 InputStream OutputStream


 

 

字节流

InputStream  OutputStream  BufferedInputStream  BufferedOutputStream

读取转换流

InputStreamReader

黑马程序员-字节流 InputStream OutputStream - ZmeSky -    ZmeSky    的博客

 键盘的常见写法

BufferedReader  br = new BufferedReader( new InputStreamReader( System.in ));

流操作规律

1 明确源和目的

源:输入流 ,InputStream  Reader

目的: 输出流 , OutputStream Writer

2 操作的数据是否是纯文本

是:字符流

否:字节流

3 当体系明确后, 在确定使用哪个流对象

通过设备来区分

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

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

流操作实例

1 将一个文本文件数据复制到另一个文本文件中,复制文件

源:因为是源,所以使用读取流,InputStream Reader

       因为是操作文本文件,所以选择Reader

        明确Reader体系中的具体对象  明确设备:硬盘 文件  。Reader体系中可以操作文件的对象是:FileReader

         是否需要提高效率: 是, 加入Reader体系中缓冲区  BufferedReader

        FileReader fr = new FileReader("demo.text");

        BufferedReader br = new BufferedReader(fr);

目的:写入流,OutputStream Writer

          操作文本 Writer

           设备:硬盘 文件

            Writer体系中可以操作文件的对象是:FileWriter

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

         FileWriter fw = new FileWriter("demo1.txt");

           BufferedWriter bw = new BufferedWriter(fw);

2 将键盘录入的数据保存到一个文件中

源:InputStream Reader

     是纯文本  Reader

    设备:键盘  对应的对象是 System.in   System.in对应的是字节流

   为了操作键盘的文本数据方便,将字节流转换成字符流  使用Reader体系中的转换流:InputStreamReader

InputStreamReader isr = new InputStreamReader(System.in);

为了提高效率,加入缓冲区

BufferedReader br = new BufferedReader(isr);

目的:OutputStream Writer

     是文本文件 : Writer

     设备:硬盘, 文件  使用FIleWriter

FileWriter fw = new FileWriter("demo.txt");

为了提高效率 加入缓冲区

BufferedWriter bw = new BufferedWriter(fw);

 

问题:将要把录入的数据按编码表(UTF-8)存入文件中

目的:OutputStream Writer

是文本文件 : Writer

设备:硬盘, 文件 使用FIleWriter   FileWriter使用的是默认的编码表 GBK

使用编码表只有转换流可以指定 所以使用的对象是OutputStreamWriter

OutputStreamWriter对象需要接收一个字节输出流,而该字节输出流需要操作文件:FileOutputStream

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("demo.txt"), "UTF-8");

为了提高效率

BufferedWriter bw = new BufferedWriter(osw);

转换流什么时候使用: 字符流与字节流之间的桥梁,通常涉及到字符编码的转换时需要用到转换流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值