3

我希望 Stream 具有的 TextReader 具有类似的功能。特别是在流中设置位置的能力。有没有办法将 TextReader 更改为流?

我想接受一个 TextReader 但像 Stream 一样访问它。

4

3 回答 3

5

您可以通过使用 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

希望这可以帮助!

于 2012-11-05T23:21:56.710 回答
4

在一般情况下你不能这样做。并非所有TextReader实例都基于流。

此外, aTextReader基于文本行,其中行终止符可能不是您可以备份的那种。

于 2012-11-05T23:46:24.487 回答
1

像 StreamReader。

StreamReader 类

关于编码

StreamReader 构造函数(字符串,编码)

关于流

StreamReader 构造函数(流)

如果您需要将其作为 TextReader 接受,那么您将受到限制。
您真的仅限于 TextReader 作为输入吗?
在评论中,您声明任何类型的文本。

于 2012-11-05T23:23:16.443 回答