docs: public @Nonnull String fastTail(int numChars, Charset cs) throws IOException {
  
          try (RandomAccessFile raf = new RandomAccessFile(file, "r")) {
              long len = raf.length();
              // err on the safe side and assume each char occupies 4 bytes
              // additional 1024 byte margin is to bring us back in sync in case we started reading from non-char boundary.
              long pos = Math.max(0, len - (numChars * 4 + 1024));
              raf.seek(pos);
  
              byte[] tail = new byte[(int) (len - pos)];
              raf.readFully(tail);
  
              String tails = cs.decode(java.nio.ByteBuffer.wrap(tail)).toString();
  
              return new String(tails.substring(Math.max(0, tails.length() - numChars))); // trim the baggage of substring by allocating a new String
          }
      }