我面临一个非常奇怪的问题,即同一个循环在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());
Run Code Online (Sandbox Code Playgroud)
当我将BUFFER大小更改为500时,它给我一个7 kb的文件,当我将BUFFER大小更改为100000时,它会给出一个400 kb的文件,其中内容会一次又一次地重复.请帮忙.我该怎么做才能防止这种情况发生?
你必须记住的返回值read()调用,因为read它不能保证整个缓冲区已经填满.
您将需要记住该值并在追加调用中使用它仅附加许多字符.
否则,你会将未初始化的字符附加到StringBuffer实际上并非来自的Reader(可能是0之前read()调用的或者之前的值).