【发布时间】:2012-11-05 23:11:15
【问题描述】:
我希望 TextReader 具有与 Stream 类似的功能。特别是在流中设置位置的能力。有没有办法将 TextReader 变成流?
我想接受 TextReader,但像 Stream 一样访问它。
【问题讨论】:
我希望 TextReader 具有与 Stream 类似的功能。特别是在流中设置位置的能力。有没有办法将 TextReader 变成流?
我想接受 TextReader,但像 Stream 一样访问它。
【问题讨论】:
您可以通过使用 StreamReader 类来获取 Stream。 StreamReader 是 TextReader 的子类,因此您可以通过执行以下操作轻松访问其流属性:
TextReader reader = File.OpenText("C:\\todo.txt");
Stream stream = ((StreamReader)reader).BaseStream;
根据您的需要,您也可以只使用 StreamReader 类。
来源:http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx
希望这会有所帮助!
【讨论】:
ş(UTF8 格式为 239,187)。如果您将位置设置为 1 并尝试读取一个字符,您将得到垃圾。
在一般情况下您不能这样做。并非所有TextReader 实例都基于流。
另外,TextReader 基于文本行,其中行终止符可能不是您可以备份的那种。
【讨论】:
像 StreamReader。
关于编码
StreamReader Constructor (String, Encoding)
关于流
StreamReader Constructor (Stream)
如果您需要将其作为 TextReader 接受,那么您将受到限制。
您真的仅限于 TextReader 作为输入吗?
在评论中,您声明任何类型的文本。
【讨论】: