字节流和字符流

Jav*_*ser 41 java iostream filestream

请解释Byte流和字符流是什么.这究竟是什么意思?Microsoft Word文档是面向字节还是面向字符?

谢谢

kgi*_*kis 52

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

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

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

  • 字符流适合于读取.txt文件.然而,正如我所说,您需要知道文本文件的编码. (2认同)
  • @JavaUser你的.txt文件在哪个操作系统上无关紧要,它可以是任何字符编码,通常无法明确检测.txt文件中使用的字符编码.最常见的编码是`ISO-8859-1`和`UTF-8`. (2认同)

Rav*_*abu 10

ByteStreams:

从oracle关于字节流的文档页面:

程序使用字节流来执行8位字节的输入和输出.所有字节流类都来自InputStreamOutputStream.

在此输入图像描述

何时使用:

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

何时不使用:

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

例如,阅读文本文件

角色流:

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

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

所有字符流类都来自ReaderWriter.

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

有两个通用的字节到字符"桥"流:InputStreamReaderOutputStreamWriter.

何时使用:

从字符SocketFile字符中读取字符流

总结:

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

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

  • 这些概念始终是个谜。[问题](/sf/ask/3286712551/) (2认同)

dty*_*dty 5

这个。它告诉您字节和字符之间的区别(以及大量其他有用的东西)


小智 5

1.面向字符与数据类型相关。只能读取字符串类型或字符类型,而面向字节的数据不与任何数据类型绑定,可以读取任何数据类型的数据(字符串除外),只需指定即可。

2.面向字符的读取字符,而面向字节的读取字节

3,面向字符的流使用字符编码方案(UNICODE),而面向字节的流不使用任何编码方案

4.面向字符的流也称为读取器和写入器流面向字节的流被称为数据流-数据输入流和数据输出流