Input streams deal with raw bytes. When you read directly from the input stream, all you get is raw bytes, where character sets don't matter.
- : ? "" .
"" Readers. ( ) Reader ( ) . :
InputStream is = ...;
Reader reader = new InputStreamReader(is, Charset.forName("UTF-16"));
, reader.read() , . , BufferedReader :
BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-16")));
String line = reader.readLine();