gpt4 book ai didi

java - 相同的循环给出不同的输出。 Java IO

转载 作者:行者123 更新时间:2023-12-01 16:41:14 24 4
gpt4 key购买 nike

我面临一个非常奇怪的问题,即同一循环在 BUFFER 值变化时不断给出不同的输出

  final int BUFFER = 100;
char[] charArr = new char[BUFFER];
StringBuffer objStringBuffer = new StringBuffer();
while (objBufferedReader.read(charArr, 0,BUFFER) != -1) {
objStringBuffer.append(charArr);
}
objFileWriter.write(objStringBuffer.toString());

当我将 BUFFER 大小更改为 500 时,它会生成一个 7 kb 的文件;当我将 BUFFER 大小更改为 100000 时,它会生成一个 400 kb 的文件,其中的内容会一次又一次重复。请帮忙。我应该怎么做才能防止这种情况发生?

最佳答案

必须记住read()调用的返回值,因为read不能保证整个缓冲区已被填满。

您需要记住该值并在追加调用中使用它来仅追加那么多字符。

否则,您会将未初始化的字符附加到实际上并非来自 ReaderStringBuffer(可能是 0 或之前的 read() 调用写入的值)。

关于java - 相同的循环给出不同的输出。 Java IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506750/

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