Package xyz.cofe.text

Class 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 class  BytesDump.Builder
      "Строитель"
      static class  BytesDump.Decode
      Декодирование очередной порции байтов
      static class  BytesDump.Decoded
      Расшифровка набора байт
    • Constructor Summary

      Constructors 
      Constructor Description
      BytesDump()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String dump​(byte[] buff)
      Дамп байтов
      java.lang.String dump​(byte[] buff, int off, int len)
      Дамп байтов
      int getDefBytesPerLine()
      Возвращает кол-во байт на линию по умолчанию
      java.lang.String getDescDelimiter()  
      int getOffsetAlign()
      Возвращает как выравнивать начала массива байт, по какому размеру
      java.lang.String getOffsetDelimiter()  
      int getOffsetRadix()  
      int getOffsetWidth()
      Кол-во символом отведенных для смещения
      java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> getPreview()
      Указывает функцию дешифровки порции байт.
      int getPtrAlign()
      Возвращает как выравнивать текущую позицию, по какому размеру
      void setDefBytesPerLine​(int defBytesPerLine)
      Указывает кол-во байт на линию по умолчанию
      void setDescDelimiter​(java.lang.String descDelimiter)  
      void setOffsetAlign​(int v)
      Указывает как выравнивать начала массива байт, по какому размеру
      void setOffsetDelimiter​(java.lang.String offsetDelimiter)  
      void setOffsetRadix​(int offsetRadix)  
      void setOffsetWidth​(int offsetWidth)
      Кол-во символом отведенных для смещения
      void setPreview​(java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> preview)
      Указывает функцию дешифровки порции байт
      void setPtrAlign​(int v)
      Указывает как выравнивать текущую позицию, по какому размеру
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • 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
    • Constructor Detail

      • BytesDump

        public BytesDump()
    • Method Detail

      • 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:
        Дамп