什么';Java中的字符流和字节流以及C中的字符和字节之间的区别是什么?
在java中,人们说inputstream逐字节读取文件,然后使用缓冲读取器将其更改为characterstream。但在C中,char指的是字节(8位)。在java中,我们称之为字符和字节 在Java中,什么';Java中的字符流和字节流以及C中的字符和字节之间的区别是什么?,java,c,Java,C,在java中,人们说inputstream逐字节读取文件,然后使用缓冲读取器将其更改为characterstream。但在C中,char指的是字节(8位)。在java中,我们称之为字符和字节 在Java中,byte是有符号的8位值,char是无符号的16位值。Character既是char的包装器类型,也是许多支持char InputSTream之间的关键区别在于它每次读取一个字节的二进制数据。Reader用于读取文本,它使用您设置的字符编码或默认编码(例如UTF-8可以将1、2或3个字节转换为
byte
是有符号的8位值,char
是无符号的16位值。Character
既是char
的包装器类型,也是许多支持char
InputSTream之间的关键区别在于它每次读取一个字节的二进制数据。Reader
用于读取文本,它使用您设置的字符编码或默认编码(例如UTF-8
可以将1、2或3个字节转换为单个char
)将字节解码为char
我建议您进一步了解Java的基础知识。对于C/C++部分,在这些语言中,一个字符保证至少有8位,因此一个字符至少有一个字节宽。自从1992以来,我一直在编码C和C++,我从来没有见过一个真正的平台/编译器组合,其中字符和字节不等价。
另外请注意,除非另有规定,否则其他整数类型是有符号的(例如,“int”是有符号整数),但“char”等同于“unsigned char”。流是顺序访问文件的一种方式。在流中,您可以一次处理一个数据,因为批量操作不可用。但是,streams支持大量的源和目标,包括磁盘文件、阵列、其他设备、其他程序等。在Java中,字节和字符不是一回事。因此,字节流不同于字符流。因此,Java定义了两种类型的流:字节流和字符流 字节流
字节流逐字节访问文件。Java程序使用字节流来执行8位字节的输入和输出。它适用于任何类型的文件,但不太适用于文本文件。例如,如果文件使用unicode编码,并且字符由两个字节表示,则字节流将分别处理这些字节,您需要自己进行转换。面向字节的流不使用任何编码方案,而面向字符的流使用字符编码方案(UNICODE)。所有字节流类都是从InputStream和OutputStream派生而来。谢谢你说的,我需要更多地关注基础知识。可能是