JAVA字节流与字符流

40次阅读

共计 906 个字符,预计需要花费 3 分钟才能阅读完成。

对于我们常用的 GBK 中,英文是占用 1 个字节,中文是 2 个

对于 UTF-8,英文是 1 个,中文是 3 个

对于 Unicode,英文中文都是 2 个

Java 的流操作分为字节流和字符流两种。

1、字节流

所有的读操作都继承自一个公共超类 java.io.InputStream 类。

所有的写操作都继承自一个公共超类 java.io.OutputStream 类。

InputStream 和 OutputStream 都是抽象类。

InputStream 有 6 个低级输入流:

低级流

流的用途

ByteArrayInputStream
从内存数组中读取数据字节
FileInputStream
从本地文件系统中读取数据字节
PipedInputStream
从线程管道中读取数据字节
StringBufferInputStream
从字符串中读取数据字节
SequenceInputStream
从两个或多个低级流中读取数据字节,当到达流的末尾时从一个流转到另一个流
System.in
从用户控制台读取数据字节

InputStream 还有一个子类:过滤器流 java.io.FilterInputStream。过滤器流即能把基本流包裹起来,提供更多方便的用法。

FilterInputStream 类的构造方法为 FilterInputStream(InputStream),在指定的输入流之上,创建一个输入流过滤器。

FilterInputStream 的常用的子类如下:

过滤器输入流

流的用途

BufferedInputStream
缓冲区对数据的访问,以提高效率
DataInputStream
从输入流中读取基本数据类型,如 int、float、double 或者甚至一行文本
LineNumberInputStream
在翻译行结束符的基础上,维护一个计数器,该计数器表明正在读取的是哪一行。
PushbackInputStream
允许把数据字节向后推到流的首部
OutputStream(略)
OutputStream 的结构基本和 InputStream 是一样的。

正文完
 0