gpt4 book ai didi

Java InputStream != 可读

转载 作者:行者123 更新时间:2023-11-29 04:03:16 25 4
gpt4 key购买 nike

我将 java.util.Scanner 用于诸如 nextInt() 之类的东西,只要我使用 java.lang.Readable(一个且唯一的构造函数参数),一切都工作正常。但是,当我改为使用 InputStream 时,Scanner.nextInt() 永远不会返回。你知道为什么吗?

我对 InputStream 的实现如下所示:

private static class ConsoleInputStream extends InputStream {
...
private byte[] buffer;
private int bufferIndex;
public int read() throws IOException {
...
while (...) {
if (buffer != null && bufferIndex < buffer.length) {
return buffer[bufferIndex++]; // THE COMMENT!
}
...
}
...
}
}

当我通过 THE COMMENT 打印数据时,我(正确地)得到了诸如“1”、“2”、“\n”之类的“12\n”之类的东西。是否有一些扫描仪连接,我不知道,那导致这种行为?

最佳答案

来自 InputStream 的 read() 方法的 javadocs:

“返回:数据的下一个字节,如果到达流的末尾则返回 -1。”

我猜你永远不会返回 -1?

关于Java InputStream != 可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031406/

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