Java 什么';字符流和字节流的区别是什么?

Java 什么';字符流和字节流的区别是什么?,java,Java,首先,我知道字符和字节之间的区别。 字符是某物的签名或备注(“a”中" 字节是计算机中的一个具体大小。计算机中字符的大小取决于编码样式。 但是字符流和字节流到底是什么?它们代表什么特定类型?字节流是字节流?如果是,什么是字符流?我的最后一个问题是,TCP传输什么类型的流?TCP当然传输字节。这些字节代表什么取决于协议 您可以在此处了解字符流和字节流之间的关系: 实际上,字符流是字节流上的应用程序端抽象,允许使用各种编码在字符中读取/写入字节。an读取字节,a读取字符 TCP上的所有内容本机都以字

首先,我知道字符和字节之间的区别。 字符是某物的签名或备注(“a”中" 字节是计算机中的一个具体大小。计算机中字符的大小取决于编码样式。
但是字符流和字节流到底是什么?它们代表什么特定类型?字节流是字节流?如果是,什么是字符流?我的最后一个问题是,TCP传输什么类型的流?

TCP当然传输字节。这些字节代表什么取决于协议

您可以在此处了解字符流和字节流之间的关系:

实际上,字符流是字节流上的应用程序端抽象,允许使用各种编码在字符中读取/写入字节。

an读取字节,a读取字符


TCP上的所有内容本机都以字节为单位。如果您知道字节流表示字符,则可以使用来将InputStream用作读取器。

字符流是比字节流更高级的概念。字符流实际上是一个用逻辑包装的字节流,允许它输出字符从一种特定的编码中读取字节,而不是读取字节并解码它们所代表的字符。

看看这个:


  • 我假设TCP传输包,字节流。

    java中的characterstream类用于处理字符的输入和输出,用于ex-hadles unicode,而ByTestStream类用于处理字节的输入和输出,即仅用于ascii码。前者在java 1.0版本中使用,而后者在java 1.1中使用java中有多少读者?我在java项目中遇到了两个读者,BufferedReader和InputStreamReader,它们代表什么?单击“读者”链接,查看“直接已知子类”“一份读者名单。至少有这么多,但任何人都可以用新的实现扩展Reader,所以实际数量是无限的。单击此处的每个链接将带您访问其Javadoc,它将为您提供比这里任何人都能提供的更好的描述。简单地说,InputStreamReader通过将字节转换为字符,用作从InputStream到Reader的适配器。BufferedReader是BufferedInputStream的字符等价物,它可以准确地输出它读取的内容,但在对底层流的每个单独读取调用都会带来性能损失的情况下,可以使用内部缓冲来提高性能。我似乎理解读者的意思,读者只是指以编码依赖的方式读取或写入字节流的struct,java提供了各种扩展读者,让程序员易于转换,任何用户都可以扩展读者类来实现自己的转换,对吗?可能有点模糊/有限,但我不会说你刚才说的任何话都是错误的,是的。我强烈建议查看aneal回答的相同链接: