多くのプログラミング言語で読み取り可能なデータを格納するために、バイナリ ファイルをよく使用します。VB.Net にもあります。VB6 でバイナリ ファイルを作成すると、バイナリ データのみが含まれますが、VB.NET で作成すると、次の例のようになります。
Dim fs As New FileStream(setup_file, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)
Dim bf As New BinaryFormatter()
bf.Serialize(fs, myStruct)
fs.Close()
...データの前に、システムはデータの説明を含むヘッダーを作成します。そのため、さまざまなプログラミング言語やさまざまな OS でそのようなファイルを読み取る際に、主にヘッダーの長さを見つける際に問題が発生する可能性があります。
「昔ながらの」方法で同じファイルを作成できます。これらのファイルには「ヘッダー」は含まれず、純粋なデータだけですが、VB.NET プログラマーは新しいスタイルを強く推奨するとよく言います。
これは「昔ながらの」VB6 のような方法です。
Dim fnum = FreeFile()
FileOpen(fnum, setup_file, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Shared, Len(myStruct))
FilePut(fnum, myStruct, 1)
FileClose(fnum)
質問は:
FileStream、BinaryFormatter、および Serialization を使用してバイナリ ファイルを作成/書き込みできますが、データを含むファイル内のヘッダーの作成とその方法は回避できますか?