繁体   English   中英

Java中的字符流和字节流有什么区别?C中的字符串和字节与字节有什么区别?

[英]What's the difference Between Character Stream and Byte Stream in Java and Char vs Byte in C?

在java中,人们说输入流逐字节读取文件,然后使用缓冲读取器将它们更改为characterstream.But在C char中引用字节(8位)。然后我们称之为java中的字符和字节。

在Java中, byte是带符号的8位值, char是无符号的16位值。 Character既是char的包装类型,也是支持char的许多有用方法的实用程序类

InputSTream的主要区别在于它一次读取一个字节的二进制数据。 Reader用于读取文本,它使用您设置的字符编码或默认编码将字节解码为char ,例如UTF-8可以将1,2或3个字节转换为单个char

我建议你更多地了解Java的基础知识。 这些问题可以为您节省大量时间。

对于C / C ++部分,在这些语言中,char保证至少为8位,因此char至少与字节一样宽。 我从1990年开始编写C语言,自1992年开始编写C ++,我从未见过真正的平台/编译器组合,其中char和byte不相等。

另请注意,除非另行指定,否则其他整数类型都是有符号的(例如'int'是有符号整数),但'char'等效于'unsigned char'。

流是一种顺序访问文件的方式。 在Streams中,您可以一次处理一个数据,因为批量操作不可用。 但是,流支持大量的源和目标,包括磁盘文件,数组,其他设备,其他程序等。在Java中,字节与char不同。 因此,字节流与字符流不同。 因此,Java定义了两种类型的流:字节流和字符流。

Byte Streams

字节流逐字节地访问文件。 Java程序使用字节流来执行8位字节的输入和输出。 它适用于任何类型的文件,但不太适合文本文件。 例如,如果文件使用的是unicode编码,并且字符用两个字节表示,则字节流将单独处理这些字节,您需要自己进行转换。 面向字节的流不使用任何编码方案,而面向字符的流使用字符编码方案(UNICODE)。 所有字节流类都来自InputStream和OutputStream。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM