C 二進位制資料流工具類

2021-08-15 06:09:38 字數 2527 閱讀 5174

在實際的專案開發中,很多地方都會應用的二進位制資料,比如客戶端伺服器的通訊、使用者資料的儲存以及一些遊戲資料的儲存。所以寫了此類以方便進行類的序列化和反序列化操作。

此類包含的大小端的設定,如果只是客戶端使用,可以忽略。

類名datastream

使用方法

1.寫資料:

datastream stream = new datastream(true);

writer.writesint32(1);

writer.writestring16("abc");

byte bdata = data.tobytearray();

2.讀取資料:

byte bdata = new byte[10];

datastream stream = new datastream(bdata,true);

int i = datastream.readsint32();

string s = datastream.readstring16();

支援的資料型別:ushort,uint ,ulong,short,int,long,string;

完整**:

public class datastream

public datastream(byte buffer, bool isbigendian)

public datastream(byte buffer, int index, int count, bool isbigendian)

private void initwithmemorystream(memorystream ms, bool isbigendian)

public void close()

public void setbigendian(bool isbigendian)

public bool isbigendian()

public long position

set

}public long length }

public byte tobytearray()

public long seek(long offset, seekorigin loc)

public void writeraw(byte bytes)

public void writeraw(byte bytes, int offset, int count)

public void writebyte(byte value)

public byte readbyte()

public void writeint16(uint16 value)

public uint16 readint16()

public void writeint32(uint32 value)

public uint32 readint32()

public void writeint64(uint64 value)

public uint64 readint64()

public void writestring8(string value)

public string readstring8()

public void writestring16(string value)

public string readstring16()

private void writeinteger(byte bytes)

private byte flipbytes(byte bytes)

return bytes; }

public void writesbyte(sbyte value)

public sbyte readsbyte()

public void writesint16(int16 value)

public int16 readsint16()

public void writesint32(int32 value)

public int32 readsint32()

public void writesint64(int64 value)

public int64 readsint64()

public void writeubyte(byte value)

public byte readubyte()

public void writeuint16(uint16 value)

public uint16 readuint16()

public void writeuint32(uint32 value)

public uint32 readuint32()

public void writeuint64(uint64 value)

public uint64 readuint64()

}

用mysql儲存二進位制資料流

近日一專案遇到需要在db中儲存2進製資料流型別檔案的問題,發現常用的mysql api都用不了,再研究,方知有一套專門的api來幹這種資料,功能相當強大的說。以下即為範例 按照說明編譯即可用,稍加修改即可儲存2進製檔案 view plaincopy to clipboardprint?mysql資料...

二進位制工具

現在的pwn題很多都是linux下的程式,因此學會gdb的除錯是做pwn題必不可少的,現在簡單介紹一下gdb的使用,gdb下有個很好的外掛程式peda,可以安裝一下。例子 include include includeint add int a,int b int main 1.進行編譯 gcc t...

Buffered流 二進位制

bufferedreader類是reader類的子類 bufferedreader類帶有緩衝區按行讀取內容的readline 方法 reader類常用方法 int read int read byte c read char c,int off,int len void close 子類buffer...