Strings are always stored in Java memory as a collection of two byte Unicode characters. You don't have any control over that. How you read or write Strings with streams depends what's on the other end of that stream. You could certainly read or write the Unicode characters without any conversion, but if you are talking to another program that doesn't understand Unicode, you will have ... a failure to communicate.