我想讀取一個在我的程序之外創建的二進制文件。在C#中讀取二進制文件的一個顯而易見的方法是定義表示文件的類,然後使用BinaryReader並通過Read *方法從文件讀取並將返回值分配給類屬性。C#中的BinaryFormatter是讀取文件的好方法嗎?
我不喜歡的方法是我手動編寫代碼來讀取文件,雖然定義的結構表示文件的存儲方式。閱讀時,我還必須保持訂單正確。
看了一下後,我發現BinaryFormatter可以自動序列化和反序列化二進制格式的對象。一個很大的優點是我可以讀取並寫入文件,而無需創建額外的代碼。不過,我不知道這種方法是否適用於從其他程序創建的文件,而不僅僅是序列化的.NET對象。以例如BMP等圖形格式文件爲例。用BinaryFormatter讀取文件是否是個好主意,還是通過BinaryReader和BinaryWriter手動寫入更好?或者還有其他更適合的方法嗎?我不是在尋找具體的例子,而只是尋求建議,最好的實現方式是什麼。