gpt4 book ai didi

java - 使用 System.in 中的缓冲读取器 readline() 时字符的最大大小是多少

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:55 25 4
gpt4 key购买 nike

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

我只是想知道当我使用上面的语句时我可以输入多少个字符。例如,如果我可以在控制台中输入“aaaaa”或“abcde”,那就意味着我可以输入 5 个或更多字符。那我可以输入“a”2,147,483,647次吗? (整数的最大值)System.in 似乎在内部将输入序列存储为整数类型。

如果为真,我可以输入多少个 2 字节字符?是1,073,741,823吗? (该数字的一半)

最佳答案

最大值不应受 System.in 限制,因为如果它不能接受更多字符,它应该会阻塞,但受 readLine() 方法限制。如果查看 readLine() 的实现,您会发现结果是通过 StringBuffer 构建的。这将字符串保存在一个 char 数组中。因此,要返回的最大字符数受限于 char 数组的最大长度。 (这是 Integer.MAX_VALUE - 5 根据:Do Java arrays have a maximum size?)。如果您添加更多字符,您将获得 OOM。

关于java - 使用 System.in 中的缓冲读取器 readline() 时字符的最大大小是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519666/

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