无法确定任意字节流的编码。这就是编码的本质。编码是指字节值与其表示形式之间的映射。因此,每种编码“都可以”是正确的。
的getEncoding()方法将返回其设置(读取的编码的JavaDoc),用于该流。它不会为你猜测编码。
一些流告诉你使用哪种编码来创建它们:XML,HTML。但不是任意字节流。
无论如何,如果需要,你可以尝试自己猜测一个编码。每种语言的每个字符都有相同的频率。在英语中,字符经常出现,但是ê很少出现。在ISO-8859-1流中,通常没有0x00字符。但是UTF-16流有很多。
或者:你可以询问用户。我已经看到过一些应用程序,这些应用程序以不同的编码形式为你提供该文件的摘要,并要求你选择“正确的”文件。