字节流和字符流

2022-08-31 22:29:06

请解释什么是字节流和字符流。这些到底是什么意思?Microsoft Word 文档是面向字节还是面向字符?

谢谢


答案 1

流是按顺序访问文件的一种方式。字节流逐个字节地访问文件。字节流适用于任何类型的文件,但不太适合文本文件。例如,如果文件使用 Unicode 编码,并且一个字符用两个字节表示,则字节流将分别处理这些字符,您需要自己进行转换。

字符流将逐个字符读取文件。需要为字符流提供文件的编码才能正常工作。

尽管 Microsoft Word 文档包含文本,但无法使用字符流(它不是文本文件)访问它。您需要使用字节流来访问它。


答案 2

字节流

来自 oracle 文档页面关于字节流

程序使用字节流来执行 8 位字节的输入和输出。所有字节流类都从 和 降级。InputStreamOutputStream

enter image description here

何时使用:

字节流应仅用于最原始的 I/O

何时不使用:

不应使用字节流读取字符流

例如,读取文本文件

字符流:

来自 oracle 关于字符流的文档页面:

Java 平台使用 Unicode 约定存储字符值。字符流 I/O 会自动将此内部格式与本地字符集进行转换。

所有字符流类都是 和 的后代。ReaderWriter

字符流通常是字节流的“包装器”。字符流使用字节流来执行物理 I/O,而字符流处理字符和字节之间的转换。

有两个通用的字节到字符“桥接”流:和 。InputStreamReaderOutputStreamWriter

何时使用:

从字符或从字符读取字符流SocketFile

综上所述

字节流一次读取和写入一个字节。在处理更复杂的数据时,我们必须避免使用字节流。

应使用字符流和其他可用流来处理复杂数据。


推荐