code: private static byte[] readBytes(InputStream src) throws IOException {
          int id;
          int size;
          byte[] bytes;
  
          id = src.read();
          if (id == -1) {
              return null;
          } else {
              size = getData(id);
              if (size == -1) {
                  size = IO.readU2(src);
                  bytes = new byte[1 + 2 + size];
                  bytes[1] = (byte) (size >> 8);
                  bytes[2] = (byte) size;
                  IO.read(src, bytes, 3, size);
              } else {
                  bytes = new byte[1 + size];
                  IO.read(src, bytes, 1, size);
              }
              bytes[0] = (byte) id;
          }
          return bytes;
      }
docs: -- read