code: public void printIO(Appendable appendable, BigMoneyProvider moneyProvider) throws IOException {
          checkNotNull(moneyProvider, "BigMoneyProvider must not be null");
          if (isPrinter() == false) {
              throw new UnsupportedOperationException("MoneyFomatter has not been configured to be able to print");
          }
          
          BigMoney money = BigMoney.of(moneyProvider);
          MoneyPrintContext context = new MoneyPrintContext(locale);
          printerParser.print(context, appendable, money);
      }
docs: Prints a monetary value to an {@code Appendable} potentially
  throwing an {@code IOException}.
  <p>
  Example implementations of {@code Appendable} are {@code StringBuilder},
  {@code StringBuffer} or {@code Writer}. Note that {@code StringBuilder}
  and {@code StringBuffer} never throw an {@code IOException}.
  
  @param appendable  the appendable to add to, not null
  @param moneyProvider  the money to print, not null
  @throws UnsupportedOperationException if the formatter is unable to print
  @throws MoneyFormatException if there is a problem while printing
  @throws IOException if an IO error occurs