IO文件输入输出流

举报
学海无涯yc 发表于 2022/07/20 18:55:46 2022/07/20
【摘要】 文章目录字符和字节的区别Reader(字符输入流)常用方法int read()int read(char cbuf[])int read(char cbuf[], int off, int len)void close()Writer(字符输出流)常用方法void write(int c)void write(char cbuf[])void write(char cbuf[], int o...



大家好,我是水滴~~

前面我们已经学会了字节流的使用,本篇开始介绍字符流。字符输入输出流是所有字符流的超类,学会了它们的方法,也基本上掌握了其子类的使用了。

字符和字节的区别

  • 字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,一个字节等于八位比特(Bit)。
  • 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。一般情况下一个英文字母或字符占用一个字节,一个汉字占用两个字节(具体占用字节数与字符集相关)。

字符集(Character Set)是多个字符的集合,字符集种类较多,每个字符集占用的字符个数不同。下面是一些常见的字符集:

  • ASCII:一个字符占用一个字节。
  • UTF-8:一个英文字符占用一个字节,一个中文字符占用三个字节。
  • GBK:一个英文字符占用一个字节,一个中文字符占用两个字节。
  • Unicode:一个英文字符占用一个字节,一个中文字符占用两个字节。

Reader(字符输入流)

java.io.Reader 抽象类是所有字符输入流的超类。其子类必须实现read(char cbuf[], int off, int len)  close() 方法。为了提高效率和额外的功能,大多数子类重写了该类中的一些方法。

常用方法

int read()

从流中读取一个字符。该方法会阻塞,直到字符可用、发生 I/O 异常或达到流的结尾。
返回值:该方法将读取的内容以 0 至 65535(0x00 - 0xffff) 范围内的整数返回,如果到达流的末尾,则为 -1。

int read(char cbuf[])

从流中读取多个字符,并存入缓冲区数组 cbuf 中。该方法会阻塞,直到字符可用、发生 I/O 异常或达到流的结尾。
返回值:读取的字符数。如果已经到达流的结尾,则为 -1。

int read(char cbuf[], int off, int len)

从流中读取多个字符,并存入缓冲区数组 cbuf 一部分,从缓冲区的 off 下标处开始存储,最多存入 len 个字符。
返回值:读取的字符数。如果已经到达流的结尾,则为 -1。

void close()

关闭该输入流,并释放与之相关的所有系统资源。

Writer(字符输出流)

java.io.Writer 抽象类是所有字符输出流的超类。其子类必须实现 write(char cbuf[], int off, int len)  close() 方法。为了提高效率和额外的功能,大多数子类重写了该类中的一些方法。

常用方法

void write(int c)

向输出流写入一个字符。

void write(char cbuf[])

向输出流写入一个字符数组。

void write(char cbuf[], int off, int len)

向输出流写入数组的一部分。从数组 cbuf 的下标 off 处开始,最多写入 len 个字符。

void write(String str)

向输出流写入一个字符串。

void write(String str, int off, int len)

向输出流写入字符串的一部分。

void flush()

刷新该输出流,强制将缓存区中的字符写出去。

void close()

关闭该输出流,并释放与之相关的所有系统资源。


系列文章

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。