If you read the documentation for Charset, it states that:
Every implementation of the Java platform is required to support the following standard charsets.
Several of which are variations on UTF-16. It goes on to state:
Consult the release documentation for your implementation to see if any other charsets are supported.
So UTF-16 is not the only choice via the Charset class. The alternatives will, of course, vary depending on your platform. Charset has an availableCharsets() method which enumerates the alternatives.
An important question to ask is: what encoding does your other program
expect.