问题标签 [textreader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - TextReader.Peek 行为和检测流/阅读器的结束
当我使用文本阅读器时,检测我实际上处于数据末尾的最佳方法是什么?执行此操作的通常方法如下所示,
但是这里的 msdn 文档说明了以下内容
表示要读取的下一个字符的整数,如果没有更多字符可用或读取器不支持查找,则为 -1。
所以我的问题是你如何判断你是否真的处于读者数据的末尾,或者读者/基础流根本不支持搜索,因为这里的返回值似乎是模棱两可的?如果例如我有以下
因为 networkstream 不支持搜索。
还是我错过了什么?
编辑:
澄清一下,我可以使用更具体的 StreamReader 类轻松实现这一点,因为我可以检查 EoS。然而,为了让事情更笼统,我想使用 TextReader,所以我不仅仅局限于 StreamReader。但是 Peek 的语义似乎有点奇怪,如果不支持搜索,为什么它不直接抛出,为此为什么没有 TextReader 的 EoF 属性?
c# - 使用 TextReader 读取字节
过去,我一直在使用 BinaryReader 读取几个字节,但最近,我收到了这个错误:
因此,我决定使用 TextReader 的 Synchronized 方法,如下所示:
但是,返回的值(它几乎以专有格式读取图像)是不正确的。“图像”有轻微的蓝色色调,我觉得这可能是由于 TextReader 读取文本(并且读取带有编码的字符而不是仅仅读取字节值)的事实造成的。
是否有像 TextReader 的 Synchronized() 这样的“线程安全”方式来读取二进制文件?
c# - 为什么 IEumerator影响 IEnumerable 的状态甚至枚举器也没有到达终点?
我很好奇为什么以下会在“最后”分配中引发错误消息(文本阅读器关闭异常):
但是以下执行正常:
不同行为的原因是什么?
c# - 没有字符时如何从标准输入读取?
我正在编写一个Scanner
类似于 Java 的基本类。这是我所拥有的(嗯,相关部分):
从我运行的几个测试来看,这对真实文件非常有效,但对于标准输入,它并不像预期的那样有效。如果我使用Scanner.Peek
or Scanner.ReadChar
,在发送换行符后,该TextReader
实例认为它位于文件末尾(我认为)并抛出一个EndOfStreamException
实例 sincethis.Reader.Read
并this.Reader.Peek
返回-1
.
如何在仍然支持真实文件和StringReader
实例的同时强制它请求新角色?
c# - 将 TextReader 转换为 XmlReader
我有一个函数让TextReader
我想将它用作`XmlReader:
有没有办法转换TextReader
成XmlReader
?
c# - 哪些 C# 类对象获取非托管资源?有清单吗?
我正在使用 XML 对类对象进行序列化和反序列化时,我遇到了这篇博文,该博文展示了如何在 Windows Phone 7 上使用隔离的存储区域进行序列化和反序列化。Windows Phone 7 是我正在开发的平台:
在此示例中,他显式调用Dispose()的唯一对象是 TextReader 对象。我在 MSDN 上查找了 TextReader 对象,发现文档是这样说的:
释放 TextReader 使用的非托管资源,并可选择释放托管资源。
所以我假设他这样做的原因是立即释放 TextReader 对象获取的非托管资源。如果不是因为他的博客文章,我不会想到这样做。显然,我不想开始对可见的每个对象调用 Dispose(),那么对于至少调查特定对象何时应该调用 Dispose() 来说,有什么好的经验法则?是否有一些指导方针或某个地方的列表,至少是需要这种特殊处理的流行 .NET 对象?
matlab - 如何从 matlab 中的 *.txt 文件中访问数字?
我有一个 data.txt 文件,例如:
123 124 125 126
我想将这些数字与 num 进行比较
我的代码是这样的
但答案显示 0 ( b = 0 )
如何扫描这些数字?
c# - C# 2Gb 文件在 Ram 中是 4gb。为什么?
我正在读取一个文件(该文件由一个长度为 2gb 的长字符串组成)。
这是我的函数,它将文件的所有内容读入内存,然后拆分字符串并放置: *reader = StreamReader
当所有数据放入列表时,它会占用 4gb 的 RAM。当文件只有 2GB 大小时,这怎么可能?
*编辑
这就是我最终做的。我没有将字节数组转换为字符串,我只是在操作它们时传递字节。这是该字段在内存中只有 2Gb 而不是 4gb
c# - 流式传输 IEnumerable
我有一个从文件中读取并过滤的字符串列表,所有这些都是使用 yield 机制发生的,因此它是惰性的。然后我需要将它传递给一个采用 TextReader 的方法。
这种方法有什么问题吗?它似乎有效,但想知道我错过了一些东西。
c# - 在 TextReader 上实现 ReadKey()
我有一个通过 TextReader 接受输入的类,并允许该类从控制台或文本框接收输入。
以下是我正在尝试做的一个非常基本的示例:
如何更改上述内容以实现上述示例ReadKey()
中的Read()
方法在按下 Enter 键之前一直接受输入?我想实现 ReadKey() 以便它只接受一个按键。
谢谢。
** 编辑 **
为了进一步澄清,我希望在不使用 Console.ReadKey() 的情况下实现 ReadKey()。我不确定这是否有可能,因为谷歌到目前为止什么都没有出现。