gpt4 book ai didi

java - 为什么使用 BufferedReader 和 CharBuffer 时最后一次读取会附加额外的字符?

转载 作者:行者123 更新时间:2023-12-01 07:46:33 25 4
gpt4 key购买 nike

当我运行以下代码时,输​​出为 abcdefghijklmnopqrstuvwxyz12345678901234

为什么最后读取的字符串应该只包含 6 个字符(即 567890),但仍将 1234 位附加到最终字符串?

(reader.read(dest)如何工作以及最后一位来自哪里?

 public static void main(String[] args)
{
CharBuffer dest = CharBuffer.allocate(10);
StringBuffer content = new StringBuffer();
try {
BufferedReader reader = new BufferedReader(new StringReader("abcdefghijklmnopqrstuvwxyz1234567890"));
while (reader.read(dest) > 0) {
dest.rewind();
content.append(dest.toString());
}
} catch (IOException e) {
System.out.println(e);
}
System.out.println(content.toString());
}

最佳答案

第三步之后,您的字符缓冲区dest包含uvwxyz1234

当您读取剩余的 567890 时,您将覆盖缓冲区的前六个字符。结果为 5678901234

关于java - 为什么使用 BufferedReader 和 CharBuffer 时最后一次读取会附加额外的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735664/

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