2010-09-17 34 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#应用​​程序,所以我会建议您,除非您真的关心开销性能。