【发布时间】:2015-09-19 07:46:49
【问题描述】:
是否有任何流阅读器类可以从string 或byte 从byte[] 中读取char 的数量?
例如读取字符串:
string chunk = streamReader.ReadChars(5); // Read next 5 chars
或读取字节
byte[] bytes = streamReader.ReadBytes(5); // Read next 5 bytes
请注意,此方法的返回类型或类的名称无关紧要。我只是想知道是否有类似的东西我可以使用它。
我有来自 midi 文件的byte[]。我想用 C# 阅读这个 midi 文件。但我需要能够读取字节数。或字符(如果我将其转换为十六进制)。更轻松地验证 midi 并从中读取数据。
【问题讨论】:
-
您可以使用StreamReader.Read - “从当前流中读取指定最大字符到缓冲区,从指定索引开始。”
-
您可能正在寻找
BinaryReader。从TextReader派生的类通常是面向文本的...请注意,所有这些都需要Stream作为源——这就是MemoryStream的用途。 -
@AlexeiLevenkov 谢谢。您的评论实际上是一个答案。我需要的是 MemoryStream。
-
@M.kazemAkhgary - 好的 - 考虑找到好的副本......或者如果你愿意,可以将我的答案转换为评论。我虽然 similar question 询问特定编码可以重复,但它已经在问题中显示了答案 - 所以不太公平。
-
是的。我得到了它。我怎么不需要流阅读器。因为即使对于十六进制我也需要字节,所以我也需要字节并且 memorystream 读取字节。 @AlexeiLevenkov
标签: c# stream bytearray reader