private void readInput() {
      // if we have an output file defined, print to it
      // otherwise print to defined output, usually standard output.
      final String inputData;

      if (jsonSourceFile != null) {
        try {
          BufferedReader reader = Files.newBufferedReader(jsonSourceFile.toPath(), UTF_8);

          // Read only the first line if there are many lines
          inputData = reader.readLine();
        } catch (IOException e) {
          throw new ExecutionException(spec.commandLine(), "Unable to read input file.");
        }
      } else {
        // get data from standard input
        try (Scanner scanner = new Scanner(parentCommand.in, UTF_8.name())) {
          inputData = scanner.nextLine();
        } catch (NoSuchElementException e) {
          throw new ParameterException(spec.commandLine(), "Unable to read input data." + e);
        }
      }

      decode(inputData);
    }
Reads the stdin or from a file if one is specified by {@link #jsonSourceFile} then goes to
{@link #decode(String)} this data
app/src/main/java/org/hyperledger/besu/cli/subcommands/rlp/RLPSubCommand.java