Luckily, all that low-level stuff has been dealt with in class java.lang.Character, so your default implementation could be re-written as: public Appendable appendCodePoint(int c) throws IOException default { return append(new String(Character.toChars(c)); }