Package xyz.cofe.text
Class BytesDump
java.lang.Object
xyz.cofe.text.BytesDump
public class BytesDump
extends java.lang.Object
Дамп байт массива
Пример
Пример
byte[] bytes = (
"0123456789abcdef _ABCDEFG"
).getBytes(StandardCharsets.ISO_8859_1);
BytesDump dump = new BytesDump.Builder().relative( decoder -> {
decoder
.name(0, 2, "head")
.decode(4, bytes1 -> new String(bytes1,StandardCharsets.ISO_8859_1));
}).build();
System.out.println(dump.dump(bytes));
Вывод:
0|30 31 |head
2| 32 33 34 35 |2345
6| 36 37 38 39 61 62 63 64 65 66
10|20 5f 41 42 43 44 45 46 47
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBytesDump.Builder"Строитель"static classBytesDump.DecodeДекодирование очередной порции байтовstatic classBytesDump.DecodedРасшифровка набора байт -
Field Summary
Fields Modifier and Type Field Description protected intdefBytesPerLineprotected java.lang.StringdescDelimiterprotected intoffsetAlignprotected java.lang.StringoffsetDelimiterprotected intoffsetRadixprotected intoffsetWidthКол-во символом отведенных для смещенияprotected java.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>>previewprotected intptrAlign -
Constructor Summary
Constructors Constructor Description BytesDump() -
Method Summary
Modifier and Type Method Description java.lang.Stringdump(byte[] buff)Дамп байтовjava.lang.Stringdump(byte[] buff, int off, int len)Дамп байтовintgetDefBytesPerLine()Возвращает кол-во байт на линию по умолчаниюjava.lang.StringgetDescDelimiter()intgetOffsetAlign()Возвращает как выравнивать начала массива байт, по какому размеруjava.lang.StringgetOffsetDelimiter()intgetOffsetRadix()intgetOffsetWidth()Кол-во символом отведенных для смещенияjava.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>>getPreview()Указывает функцию дешифровки порции байт.intgetPtrAlign()Возвращает как выравнивать текущую позицию, по какому размеруvoidsetDefBytesPerLine(int defBytesPerLine)Указывает кол-во байт на линию по умолчаниюvoidsetDescDelimiter(java.lang.String descDelimiter)voidsetOffsetAlign(int v)Указывает как выравнивать начала массива байт, по какому размеруvoidsetOffsetDelimiter(java.lang.String offsetDelimiter)voidsetOffsetRadix(int offsetRadix)voidsetOffsetWidth(int offsetWidth)Кол-во символом отведенных для смещенияvoidsetPreview(java.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>> preview)Указывает функцию дешифровки порции байтvoidsetPtrAlign(int v)Указывает как выравнивать текущую позицию, по какому размеру
-
Field Details
-
offsetAlign
protected int offsetAlign -
ptrAlign
protected int ptrAlign -
offsetWidth
protected int offsetWidthКол-во символом отведенных для смещения -
offsetRadix
protected int offsetRadix -
offsetDelimiter
protected java.lang.String offsetDelimiter -
descDelimiter
protected java.lang.String descDelimiter -
defBytesPerLine
protected int defBytesPerLine -
preview
protected java.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>> preview
-
-
Constructor Details
-
BytesDump
public BytesDump()
-
-
Method Details
-
getOffsetAlign
public int getOffsetAlign()Возвращает как выравнивать начала массива байт, по какому размеру- Returns:
- выравнивание
-
setOffsetAlign
public void setOffsetAlign(int v)Указывает как выравнивать начала массива байт, по какому размеру- Parameters:
v- выравнивание
-
getPtrAlign
public int getPtrAlign()Возвращает как выравнивать текущую позицию, по какому размеру- Returns:
- выравнивание
-
setPtrAlign
public void setPtrAlign(int v)Указывает как выравнивать текущую позицию, по какому размеру- Parameters:
v- выравнивание
-
getOffsetWidth
public int getOffsetWidth()Кол-во символом отведенных для смещения- Returns:
- Кол-во символов
-
setOffsetWidth
public void setOffsetWidth(int offsetWidth)Кол-во символом отведенных для смещения- Parameters:
offsetWidth- Кол-во символов
-
getOffsetRadix
public int getOffsetRadix() -
setOffsetRadix
public void setOffsetRadix(int offsetRadix) -
getOffsetDelimiter
public java.lang.String getOffsetDelimiter() -
setOffsetDelimiter
public void setOffsetDelimiter(java.lang.String offsetDelimiter) -
getDescDelimiter
public java.lang.String getDescDelimiter() -
setDescDelimiter
public void setDescDelimiter(java.lang.String descDelimiter) -
getDefBytesPerLine
public int getDefBytesPerLine()Возвращает кол-во байт на линию по умолчанию- Returns:
- кол-во байт на линию по умолчанию
-
setDefBytesPerLine
public void setDefBytesPerLine(int defBytesPerLine)Указывает кол-во байт на линию по умолчанию- Parameters:
defBytesPerLine- кол-во байт на линию по умолчанию
-
getPreview
public java.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>> getPreview()Указывает функцию дешифровки порции байт.dump.setPreview( d -> { if( d.getPointer()==2 ) return d.respone(2,"2 chars: "+new String(d.getBytes(),d.getPointer(),2,StandardCharsets.ISO_8859_1)); if( d.getPointer()==4 ) return d.respone(4,"4 chars: "+new String(d.getBytes(),d.getPointer(),4,StandardCharsets.ISO_8859_1)); return Optional.empty(); });- Returns:
- функция дешифровки
-
setPreview
public void setPreview(java.util.function.Function<BytesDump.Decode,java.util.Optional<BytesDump.Decoded>> preview)Указывает функцию дешифровки порции байт- Parameters:
preview- функция дешифровки
-
dump
public java.lang.String dump(byte[] buff)Дамп байтов- Parameters:
buff- байт-массив- Returns:
- Дамп
-
dump
public java.lang.String dump(byte[] buff, int off, int len)Дамп байтов- Parameters:
buff- байт-массивoff- смещение в массивеlen- кол-во байт- Returns:
- Дамп
-