Java中DataInputStream中的readChar()行为?

时间:2017-08-28 09:03:46

标签: java io stream

我正在使用DataInputStream进行R& D,并在不同情况下检查其输出。 我有一个文件行,我正在使用不同的方法阅读它。 我的代码是:

public class TestDataAgain {
public static void main(String[] args) {
    File fileName = new File("againDataIO.dat");

    try(DataInputStream in = 
            new DataInputStream(
                new BufferedInputStream(
                    new FileInputStream(fileName)))) {
        while(in.available() >= 1) {
            System.out.print((char)in.readByte() + " ");
        }
    } catch(IOException e) {
        e.printStackTrace();
    }
  }
}

当我使用cast和readByte()方法时输出很好,但是当我不进行任何转换并使用readChar()时:

while(in.available() >= 2) {
    System.out.print(in.readChar() + " ");
}

输出是一堆像这样的问号:

? ? ? ? ? ? ?  

该文件包含一行:

trying to read

任何人都可以解释问号作为输出出现的原因。提前谢谢。

0 个答案:

没有答案