gpt4 book ai didi

java - 为什么 BufferedReader 不缓冲输入?

转载 作者:行者123 更新时间:2023-11-29 04:45:09 27 4
gpt4 key购买 nike

我运行了以下示例:

public static void main(String[] args) throws IOException{
Reader reader = new BufferedReader(new InputStreamReader(System.in));
int character;
do{
character = reader.read();
System.out.println(character);
} while(character != '\n');
}

并且实际上对这种行为感到困惑。我认为 BufferedReader 的默认缓冲区大小足以容纳 1 个以上的字符。

但是,当我进入

a__NEW_LINE__

它会导致字符与新行一起打印。为什么?我预计缓冲区未满,因此应该没有输出。

最佳答案

BufferedReader 尽可能缓冲数据。在这种情况下,没有要缓冲的数据。因此,它会立即返回您输入的内容。 BufferedReader 在与文件 (FileInputStream) 等大型流一起使用时很有用,在所有情况下,读取方法都会在后台返回一个字符,BufferedReader 从相关的 InputStream 中读取更多数据(取决于缓冲区大小)并将其缓存以提高性能。

关于java - 为什么 BufferedReader 不缓冲输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498229/

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