2011-12-27 100 views
1

我有在我使用ASP Web應用程序:文件上傳控制在一個點擊按鈕的功能使用下面的語句來上傳用戶XSD並讀取其內容(實際上不上傳了XML Schema)文件流處理

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

這個閱讀器對象用於Click按鈕功能閱讀XMLSchema,因此我生成收集的基礎上。

我只是想知道有沒有什麼辦法再次使用該StreamReader對象,這樣我可以處理在網絡應用等控制動作的操作。

手段哪有寫讀者進入Memorystream和重用MemoryStream的方式。

對不起,我是新來這個。

+0

要繼續已讀者閱讀對象本身,或者只是數據? – R0MANARMY 2011-12-27 14:50:57

+0

我知道的是,「使用」的聲明,讀者對象將被佈置我爲關心的數據.. – 2011-12-27 15:09:46

回答

1

通過調用using的SteamReader將被佈置在所述塊的端部之後,但不是流本身。您可以將該流存儲在Session變量中並像這樣重用,但我建議您記住清除Session變量。您可以使用MemoryStream,也可以將文件移至TEMP位置並將文件位置存儲在Session變量中。我會選擇這個選項。

+0

我用你的第二種方法移動文件到一個臨時位置,並存儲在會話文件的位置。它的工作..謝謝Tomislav .. – 2011-12-28 05:24:40

2

您可以通過Position屬性設置爲0。

實例重用的MemoryStream:

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

如果你想重複使用相同的對象槽的應用程序,那麼你可以使用一個會話變量。然後,當您需要重新使用時,只需再次將位置設置爲0,並使用StreamReader來讀取它。