2010-09-17 54 views
3

我想從一個文件中的特定位置提取n個字節到我的 特定數據結構(一個結構)。閱讀C#中的自定義格式文件

舊的C應用程序(我們正在移植)使用fseek()和fread()。

是否在C#/ .Net中使用類似的解決方案,而不使用Win32-API?

回答

5

我會使用FileStream類,然後Seek + Read方法和Position屬性。

+1

要添加,在該流的周圍包裝一個'BinaryReader' /'BinaryWriter',以便在基本類型和字節數組之間進行轉換。 – 2010-09-17 16:03:05

+0

表現非常重要。我想讀取一個完整的結構,就像在舊的C++應用程序中一樣。例如 – Adesit 2010-09-20 10:11:05

+0

表現非常重要。我想讀取一個完整的結構,就像在舊的C++應用程序中一樣。像這樣: fread(&s,sizeof(SDataRecord),1,file);我的DataRecord包含不同基元類型的變量以及'subrecords'。我有一個性能問題:在c應用程序中,讀取記錄是一個IO操作。 – Adesit 2010-09-20 10:20:31

0

因爲您將C應用程序移植到將數據存儲在對象中而不是結構中的C#應用​​程序,所以我會建議您,除非您真的關心開銷性能。