Lesen von/Schreiben auf Byte-Arrays in C# .net 4
Grüße Overflowers,
Ich Liebe die Flexibilität der memory-mapped-Dateien in, dass Sie können, Lesen Sie/schreiben Sie einen beliebigen Wert eingeben.
Gibt es eine Möglichkeit, das gleiche zu tun mit byte-arrays, ohne Sie zu kopieren in z.B. eine Speicher-map-Puffer ?
Hinsichtlich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
BitConverter
Klasse zum konvertieren von Basis-Datentypen und byte-arrays.Lesen Sie die Werte direkt aus dem array:
Daten schreiben, konvertieren Sie ihn in ein byte-array und kopieren Sie Sie in die Daten:
Können Sie binden ein
MemoryStream
zu einem gegebenen byte-array gesetzt, es ist EigentumPosition
zu gehen, um eine bestimmte position innerhalb des Arrays, und dann mit einemBinaryReader
oderBinaryWriter
Lesen /schreiben von Werten von verschiedenen Arten von/zu es.Durchsuchen Sie die
MemoryStream
Klasse, die können initialisiert werden (ohne zu kopieren!) aus eine Feste Größe-byte-array.(Mit unsafe code)
Das folgende Beispiel zeigt, wie zu füllen einen 16-byte-array mit zwei long-Werten, die etwas BitConverter noch nicht tun können, ohne einen zusätzlichen Kopiervorgang:
Oder Sie machen Ihre eigene StoreBytes () - Methode:
Lesen Werte von einem byte-array ist kein problem mit BitConverter da können Sie den offset in .ToInt64.
Alternative : verwenden Sie Puffer.BlockCopy, was kann konvertieren zwischen array-Typen.