我希望Stream具有类似的TextReader功能。特别是在流中设置位置的能力。有没有办法将TextReader更改为流?
我想接受一个TextReader但是像Stream一样访问它。
答案 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 Constructor (String, Encoding)
关于流
StreamReader Constructor (Stream)
如果你需要接受它作为TextReader,那么你是有限的 你真的受限于TextReader作为输入吗? 在评论中,您可以说明任何类型的文本。