文章目录

  • 1. 概述
  • 2. OutputStreamWriter
  • 3. InputStreamReader
  • 4. 字符流复制文本文件
  • 5. FileWriter、FileReader
  • 6. 高效的字符流
  • 7. 案例演示

1. 概述

  • 字符流只能读写文本文件
    Reader :字符输入流的父类 InputStreamReader 是字节流通向字符流的桥梁
    Writer :字符输出流的父类 OutputStreamWriter 是字符流通向字节流的桥梁
  • 字符流出现的原因:由于字节流操作中文不是特别方便,所以java就提供了字符流。
  • 编码: 就是把字符串转换成字节数组 =>字符流 = 字节流 + 编码表

2. OutputStreamWriter

  • 字符流写数据的方式
    public void write(int c) 写一个字符
    public void write(char[] cbuf) 写一个字符数组
    public void write(char[] cbuf,int off,int len) 写一个字符数组的一部分
    public void write(String str) 写一个字符串
    public void write(String str,int off,int len) 写一个字符串的一部分

  • 案例代码

  • 运行结果

  • OutputStreamWriter的构造方法
    OutputStreamWriter(OutputStream out):根据默认编码(GBK)把字节流的数据转换为字符流
    OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流

3. InputStreamReader

  • 字符流读数据的方式
    public int read() 一次读取一个字符
    public int read(char[] cbuf) 一次读取一个字符数组 如果没有读到 返回-1

  • InputStreamReader的构造方法
    InputStreamReader(InputStream is):用默认的编码(GBK)读取数据
    InputStreamReader(InputStream is,String charsetName):用指定的编码读取数据

  • 案例代码

  • 运行结果

4. 字符流复制文本文件

  • 一次读取一个字符,写入一个字符来复制文本文件
  • 案例代码
  • 运行结果

  • 一次读取一个字符数组,写入一个字符数组来复制文本文件
  • 案例代码
  • 运行结果

5. FileWriter、FileReader

  • 父类-------------------------------子类
    OutputStreamWriter-----------FileWriter
    InputStreamReader----------- FileReader

    FileReader(File file)
    在给定从中读取数据的 File 的情况下创建一个新 FileReader

    FileReader(String fileName)
    在给定从中读取数据的文件名的情况下创建一个新 FileReader
  • 案例代码
  • 运行结果

6. 高效的字符流

  • BufferedReader 、 BufferedWriter
    BufferedReader(Reader in)
    创建一个使用默认大小输入缓冲区的缓冲字符输入流

    BufferedWriter(Writer out)
    创建一个使用默认大小输出缓冲区的缓冲字符输出流

  • 案例代码

  • 运行结果

  • 高效的字符流里面有自己特有的方法比较好用
    BufferedReader readLine() 一次读取一行内容
    BufferedWriter newLine() 写入换行符,具有平台兼容性
    write(line) 一次写入一行内容

  • 代码案例

7. 案例演示

  • 需求:把ArrayList集合中的字符串数据存储到文本文件
  • 案例代码
  • 运行结果

JavaSE(十八)——IO流之字符流相关推荐

  1. 01-21 IO流(字符流与字节流)

    IO流(字符流与字节流) 今日内容介绍  标准输入流 & 转换流 & 打印流  对象操作流  Properties集合 第1章标准输入流 & 转换流 & 打印流 ...

  2. java之高级的IO流,字符流与字节流

    IO流 今日内容介绍  标准输入流 & 转换流 & 打印流  对象操作流  Properties集合 第1章标准输入流 & 转换流 & 打印流 1.1标准输入输出 ...

  3. java基础学习_IO流03_字符流、IO流小结、案例_day21总结

    java基础学习_IO流03_字符流.IO流小结.案例_day21总结 ================================================================ ...

  4. Java18-day09【字节缓冲流、字符流、编码表、字符串与字符流中的编码解码问题、字符流读写数据的方式、字符缓冲流、IO流小结】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  5. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*;public class Index{public stati ...

  6. IO流 (三) ----- 字符流和字符缓冲流

    相关文章: <IO流 (一) ----- 基本概念和File类> <IO流 (二) ----- 文件流> <IO流 (三) ----- 字符流和字符缓冲流> < ...

  7. IO流的字符流+对象流+打印流+内存流+随机访问流(2)

    IO流的字符流+对象流+打印流+内存流+随机访问流(2) 一.字符流 1.利用字符输出转换流 向文件写入数据 1.文件存在的情况 2.文件不存在的情况 经验:所有的输出流,当文件不存在时都会创建文件 ...

  8. IO流之字符流+便捷字符流+高效字符流

    一.字符流 1.字符流出现的原因 字符流出现的原因:由于字节流操作中文不是特别方便,常常需要根据编码方式选择每次读取的字节数,所以,java就提供了字符流.字符流:字节流 + 编码方式.字符流只能操作 ...

  9. Java基础IO流之字符流的使用

    ☆引言☆ 大家好,我是痛而不言笑而不语的浅伤.IO流分为字节流和字符流,而上一篇文章我们学习了字节流(Java基础IO流之字符流的使用),这篇文章带大家一起来学习字符流吧.对文章中描述错误的希望大家积 ...

最新文章

  1. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
  2. [css] 请使用css写一个多级的下拉菜单
  3. PostgreSQL创建数据库报错
  4. java ocsp请求_java – 客户端证书上的OCSP吊销
  5. homebrew php70,OSX下安装PHP7教程详解
  6. 计算机入门建模观后感,实习生revit学习心得-初学Revit有感
  7. dm9000数据速率_STM32F103战舰DM9000的LWIP例程TCP速度慢,发送间隔太长
  8. 深度学习算法优化系列十 | 二值神经网络(Binary Neural Network,BNN)
  9. 用户计算机脱域了如何处理,AD域计算机经常脱域
  10. 俄罗斯方块的简单实现
  11. LinkIn基于Dynamo设计的系统:伏地魔(voldemort)设计中文文档
  12. 关于mac苹果电脑装win10系统发热严重的解决方法
  13. 山东大学 英文版《软件工程》教学内容回顾
  14. 浏阳计算机学习,浏阳十五岁孩子中等职业技术学校学计算机网络
  15. boost any 操作
  16. 停车系统源码-基于springboot+uniapp前后端完全开源的多终端智慧停车场系统源码
  17. 淘宝API接口分类!!!
  18. 深度解析IC产品的质量与可靠性测试方法
  19. adc量化单位_复习要点8:采样与量化、ADC0809、DAC0832
  20. 飞利浦商显再加码,将引来新一轮的市场热潮?

热门文章

  1. 关闭软盘_乔布斯签名软盘驱动器即将开拍 成交价预计达7500美元
  2. 点击延迟_300ms 延迟是什么,如何解决
  3. keil obj 文件 结构_keil下的STM32程序开发部署(一)
  4. 特征级融合_更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)...
  5. php一句话图片木马过滤_php一句话图片木马怎么解析
  6. Maven 命令格式及一些常用命令
  7. centos 6.5升级openssl
  8. 在CDS(Core Data Services)中使用DCL(Data Control Language)
  9. UAC 实现原理及绕过方法
  10. Swoole源代码学习记录(十五)——Timer模块分析