栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-25 IO流之字符流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-25 IO流之字符流

目录

为什么会出现字符流?

构造方法 

字符流写数据的五种方式

字符流读数据的两种方式

案例:字符流复制java文件

字符缓冲流 

字符缓冲流:

构造方法:

案例:字符流复制java文件(字符缓冲流改进版)

字符缓冲流特有功能

BufferedWriter:

BufferedReader:

案例:字符流复制java文件(字符缓冲流特有功能改进版)最常用

IO流小结

字节流

字符流


为什么会出现字符流?

由于字节流操作中文不是特别的方便,所以Java就提供字符流

  • 字符流=字节流+编码表

用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?

  • 汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数

构造方法 
    • OutputStreamWriter(OutputStream out)

      创建一个使用默认字符编码的OutputStreamWriter。

       

    • InputStreamReader(InputStream in)

      创建一个使用默认字符集的InputStreamReader。

 

字符流写数据的五种方式

    • voidflush()

      刷新流。

 不刷新数据就进不去

    • voidclose()

      关闭流,先刷新。

字符流读数据的两种方式

 

案例:字符流复制java文件

需求:

把模块目录下的“ConversionStreamDemojava”复制到模块目录下的“Copyjava”

分析:

①转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以,为了简化书写,转换流提供了对应的子类

②FileReader:用于读取字符文件的便捷类

  • FileReader(String fileName)

③FileWriter:用于写入字符文件的便捷类

  • FileWriter(String fileName)

④数据源和目的地的分析

  • 数据源:myCharStream\ConversionStreamDemo.java---读数据--- Reader (抽象类)---InputStreamReader--- FileReader(子类)
  • 目的地:myCharStream\Copyjava---写数据 ---Writer(抽象类)---OutputStreamWriter--- FileWriter(子类)

思路:

① 根据数据源创建字节输入流对象
② 根据目的地创建字节输出流对象
③ 读写数据,复制文件
④ 释放资源

 

字符缓冲流 

字符缓冲流:
  • BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途
  • BufferedReader:从字符输入流读取文本,缓中字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。默认值足够大,可用于大多数用途

构造方法:
  • BufferedWriter(Writer out)
  • BufferedReader(Readerin)

 

案例:字符流复制java文件(字符缓冲流改进版)

字符缓冲流特有功能

BufferedWriter:
  • void newline():写一行行分隔符,行分隔符字符串由系统属性定义

BufferedReader:
  • public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符(换行符等),如果流的结尾已经到达,则为null

 

案例:字符流复制java文件(字符缓冲流特有功能改进版)最常用

IO流小结

字节流

字符流

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号