将TextReader作为流访问

时间:2012-11-05 23:11:16

标签: c# .net stream

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

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

3 个答案:

答案 0 :(得分:5)

您可以通过使用StreamReader类获取Stream。 StreamReader是TextReader的子类,因此您可以通过执行以下操作轻松访问其stream属性:

    TextReader reader = File.OpenText("C:\\todo.txt");
    Stream stream = ((StreamReader)reader).BaseStream;

根据您的需要,您也可以只使用StreamReader类。

来源:http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx

希望这有帮助!

答案 1 :(得分:4)

在一般情况下,您无法执行此操作。并非所有TextReader实例都基于流。

此外,TextReader基于文本行,其中行终止符可能不是您可以备份的类型。

答案 2 :(得分:1)

与StreamReader一样。

StreamReader Class

关于编码

StreamReader Constructor (String, Encoding)

关于流

StreamReader Constructor (Stream)

如果你需要接受它作为TextReader,那么你是有限的 你真的受限于TextReader作为输入吗? 在评论中,您可以说明任何类型的文本。