gpt4 book ai didi

java - FileInputStream 没有读取到正确的值?

转载 作者:行者123 更新时间:2023-12-02 01:52:05 28 4
gpt4 key购买 nike

public static void main(String[] args) {
try {
File f = new File("file.txt");
f.createNewFile();
OutputStream fos = new FileOutputStream(f);
InputStream fis = new FileInputStream(f);


fos.write(200);



System.out.println(fis.read());


} catch (Exception ex) {
Logger.getLogger(MySimple.class.getName()).log(Level.SEVERE, null, ex);
}

}

这将按预期打印 200。然而,当我写 2000 时,它读为 208。能否解释一下为什么它会这样?

最佳答案

方法调用fos.write(200);写入一个字节数据。当您写入 200 时,它会将其保存为 8 位值。

但是当您尝试写入 2000 时,它会忽略前 8 位以上的任何内容。 2000 二进制为 0111 1101 0000。但由于前 4 位丢失,写入的结果值为 1101 0000 或十进制的 208。

这些方法有点令人困惑,因为 write() 接受一个整数值,而 read() 返回一个整数值。

关于java - FileInputStream 没有读取到正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52822068/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com