gpt4 book ai didi

java - 字符和字节流转换为字符的区别 对于可以用 1byte 表示的字符

转载 作者:行者123 更新时间:2023-12-01 17:31:07 25 4
gpt4 key购买 nike

来自java文档 Here ,它说:

The character stream uses the byte stream to perform the physical I/O, while the character stream handles translation between characters and bytes

这是如何发生的,当字符流类 read()write() bytes(2) 就像 >字节流类确实如此,但一次1个,它们都返回可以映射到字符整数类型

  • 假设所有字符都可以用1byte编码

  • 除了字节数之外,这里的特殊翻译是什么,它与字节流转换为字符有何不同,或者处理字符和字符之间的翻译的是什么? byte 为字节流?

-

最佳答案

  • 二进制数据:字节、InputStream/OutputStream
  • 文本 (Unicode):字符串、字符(UTF-16 2 字节)、读取器/写入器

这意味着两者之间应该始终使用二进制数据的字符集编码进行转换。

令人恼火的是:

  • InputStream.read() 返回一个 int:一个字节值,或 -1 = 文件结束符。

Windows 下发生的单字节编码具有相同的前 128 个字符,采用纯 7 位 ASCII,StandardCharsets.US_ASCII。但它们在剩余的 128 个字节上有所不同(希腊语、俄语、斯洛伐克语、挪威语等)。

Java 决定在内部使用 Unicode,因此所有脚本都可以组合在一个字符串中。

Hence there always is a conversion. And String should never be used for non-text binary data.

关于java - 字符和字节流转换为字符的区别 对于可以用 1byte 表示的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61118790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com