【问题标题】:What is the benefit of using a TextReader/Writer instead of a Binary Reader/Writer for string data?对字符串数据使用 TextReader/Writer 而不是 Binary Reader/Writer 有什么好处?
【发布时间】:2014-04-03 13:13:40
【问题描述】:

假设这里唯一的区别是二进制读取器/写入器对字符串使用固定长度编码,因此效率可能较低,这是否正确?

【问题讨论】:

  • 它们是用于不同目的的不同类型。你想做什么?
  • 据我了解,我可以使用二进制读取器/写入器来处理文本文件(我目前正在使用其中的一堆)。只是想知道为什么我需要一个 TextReader/Writer。无论哪种情况,我都想将数据加载到字符串中,对其进行修改,然后将其写回。
  • 您通常会为 binary 文件(因此得名)使用BinaryReader/BinaryWriter,即使它们也可能包含文本。如果您只是处理文本,则应使用TextReader/TextWriter,例如StreamReader/StreamWriter。请注意,当您调用 BinaryWriter.WriteString 时,它会添加一个长度前缀 - 结果不会是纯文本文件。您可以重复使用WriteChars,但这会更尴尬。

标签: c# string text encoding stream


【解决方案1】:

没有其他差异,例如读和写行,编码......基本上是与文本有关的“帮助”功能的负载。

【讨论】:

    【解决方案2】:

    不同之处在于常规文本文件没有充满长度前缀。如果您正在编写一个旨在作为文本读取的文件:使用 TextWriter。

    您可能会认为“啊,BinaryWriter 是用于二进制”,但事实并非如此:BinaryWriter 和 BinaryReader 是相互配对的,但在二进制文件中写入文本数据并没有“通用”规范。它完全取决于文件格式/协议,并且在大多数二进制情况下 BinaryWriter 没有任何用处。更常见的是,在处理二进制数据时只使用 Stream。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多