当前位置 : 主页 > 编程语言 > java >

【java】文件输入输出流

来源:互联网 收集:自由互联 发布时间:2022-07-22
字符和字节的区别 字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,一个字节等于八位比特(Bit)。 字符(Character)是各种文字和符号的总称,包括各国家文字、标点

字符和字节的区别

  • 字节(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()

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

网友评论