在java中,人们说输入流逐字节读取文件然后使用缓冲读取器将它们更改为characterstream.But在C char中引用字节(8位)。然后我们称之为java中的字符和字节。
答案 0 :(得分:8)
在Java中,byte
是带符号的8位值,char
是无符号的16位值。 Character
既是char
的包装类型,也是支持char
的许多有用方法的实用程序类
InputSTream的主要区别在于它一次读取一个字节的二进制数据。 Reader
用于读取文本,并使用您设置的字符编码或默认编码将字节解码为char
。 UTF-8
可以将1个,2个或3个字节转换为单个char
。
我建议你更多地了解Java的基础知识。这些问题可以为你节省很多时间。
答案 1 :(得分:0)
对于C / C ++部分,在这些语言中,char保证至少为8位,因此char至少与字节一样宽。我从1990年开始编写C和自1992年以来的C ++,我从未见过真正的平台/编译器组合,其中char和byte不相等。
另请注意,除非另有说明,否则其他整数类型都是有符号的(例如'int'是有符号整数),但'char'相当于'unsigned char'。
答案 2 :(得分:0)
流是一种顺序访问文件的方式。在Streams中,您可以一次处理一个数据,因为批量操作不可用。但是,流支持大量的源和目标,包括磁盘文件,数组,其他设备,其他程序等。在Java中,字节与char不同。因此,字节流与字符流不同。因此,Java定义了两种类型的流:Byte Streams和Character Streams。
Byte Streams
字节流逐字节地访问文件。 Java程序使用字节流来执行8位字节的输入和输出。它适用于任何类型的文件,但不太适合文本文件。例如,如果文件使用的是unicode编码,并且字符用两个字节表示,则字节流将单独处理这些字节,您需要自己进行转换。面向字节的流不使用任何编码方案,而面向字符的流使用字符编码方案(UNICODE)。所有字节流类都来自InputStream和OutputStream。