C#中的文件流处理

时间:2011-12-27 14:47:05

标签: c# asp.net c#-4.0

我有一个Web应用程序,我在其中使用 asp:FileUpload 控件上传用户XSD并使用以下语句读取其内容(实际上不上载XML架构)按钮功能

using (StreamReader reader = new StreamReader(FileUploadControlName.FileContent))

这个阅读器对象在Click按钮功能中用于阅读XMLSchema,因此我在此基础上生成集合。

我只是想知道有没有办法再次使用这个StreamReader对象,以便我可以处理Web-Application中其他控件操作的操作。

可以有办法将读者写入Memorystream并重复使用MemoryStream

对不起,我是新来的。

2 个答案:

答案 0 :(得分:2)

您可以通过将Position属性设置为0来重用MemoryStream。

示例:

Stream s = new MemoryStream();
StreamReader sr = new StreamReader(s);
// later... after we read stuff
s.Position = 0;

如果您想通过应用程序重用相同的对象,那么您可以使用Session变量。然后,当您需要重复使用它时,只需将位置再次设置为0并使用StreamReader读取它。

答案 1 :(得分:1)

通过调用using,Steam块将在块结束后处理,但不会在流本身处理。您可以将流存储在Session变量中并像这样重用它,但我建议您记住清除Session变量。您可以使用MemoryStream,也可以将文件移动到e TEMP位置,并将文件位置存储在Session变量中。我会选择那个。