Java 格式化内存输入

Java 格式化内存输入,java,io,Java,Io,我正在读埃克尔的书,IO章节,代码如下(第667页) 这段代码非常有效,但是如果我将.readByte()中的(char)改为.readChar()中的,它会打印一些亚洲符号灡捫慧攠楯㬊੩浰潲琠橡癡⹩漮⨻੩浰。为什么会这样?为什么它不打印英文ASCII符号 为什么会这样?为什么它不打印英文ASCII符号 从DataInput.readChar(): 读取两个输入字节并返回一个字符值。设a为读取的第一个字节,b为第二个字节。返回的值为: (char)((a public static void m

我正在读埃克尔的书,IO章节,代码如下(第667页)

这段代码非常有效,但是如果我将.readByte()中的
(char)改为.readChar()中的
它会打印一些亚洲符号
灡捫慧攠楯㬊੩浰潲琠橡癡⹩漮⨻੩浰。为什么会这样?为什么它不打印英文ASCII符号

为什么会这样?为什么它不打印英文ASCII符号

DataInput.readChar()

读取两个输入字节并返回一个字符值。设a为读取的第一个字节,b为第二个字节。返回的值为:
(char)((a
public static void main(String[] args) throws IOException {
    try {
        DataInputStream in = new DataInputStream(new ByteArrayInputStream(BufferedInputFile.read("src/io/FormattedMemoryInput.java").getBytes()));
        while(true) {
            System.out.print((char)in.readByte()); // problem line
        }
    } catch (EOFException ex) {
        System.err.println("End of stream");
    }
}