java - java中字符流有什么用?

标签 java oop jakarta-ee

java中字符流有什么用?为什么我们需要有字节流?我已经浏览了很多网站,但我没有清楚地了解它...请让我清楚...请不要粘贴谷歌结果

最佳答案

我假设你的意思是 Reader界面?如果您正在处理文本,则不必担心每一层的二进制/文本转换。事实上,从概念上讲,您甚至可能没有要转换的二进制数据 - 看看 StringReader例如。

拥有 Reader 界面可以清楚地表明您确实需要文本,并且该文本背后的二进制数据与您无关,只要它可以以某种方式作为 Unicode 字符序列提供即可.

值得非常清楚地认识到二进制和文本是不同的。如果您尝试将任意二进制数据视为文本(例如尝试将图像文件读入字符串),您将丢失信息。为什么您希望不同的类型来处理不同形式的数据?

这有点像说,“我们可以将每个对象的数据存储在字节数组中,并在需要时转换其中的各个部分。”是的,我们可以(如果您可以将不透明的二进制数据转换为引用或从引用转换),但就封装而言,这将是可怕的。 Reader 接口(interface)是一层封装,允许各种数据源公开字符数据(无论是否需要解码二进制数据),并允许其他代码消费该字符数据,而无需意识到确切地说它来自哪里。

关于java - java中字符流有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1997806/

相关文章:

Java 选项卡顺序 : How to set Tab order in java swing table

java - 方法实现后通用方法的接口(interface)

java - 是否存在可以 "finalize"对象私有(private)状态的 Java 方法?

java - 将 JoinColumn 参数 insertable 和 updateable 设置为 null

jakarta-ee - 在 war 中正确运送数据库驱动程序

exception - JAX-RS 请求异常期间出现 "No ' Access-Control-Allow-Origin ' header"错误

java - 避免两个 for 循环并将它们合并为一个的更有效方法?

java - 如何获取每个无序元素对,而不懒惰地从两个列表中重复?

java - 错误: int cannot be dereferenced java (repeat)

java - java中可以创建多少个嵌套的 "new"对象?