我在使用Buffered Reader时有问题。如果我使用readline()并等待它变为null,它可以完美地让我知道我已经读取了所有需要读取的内容,问题是readline剥离换行字符(n和r),这会在我的后解析中产生其他问题。
我试着只使用maxbuf大小的读取,并使用reader.ready()来判断是否有东西要读,但我无法区分它填充缓冲区(因为它目前无法释放那么多)和填充缓冲区,因为它没有数据。Ready()只是表示读取操作不会被阻塞,它似乎没有区分数据不足和未准备好。想法吗?
谢谢
通过取消ready()调用修复了它;-1似乎是一个更安全的检查。我发现网上的一些说法是ready()比无用还糟糕,我想我同意。现在如果我得到-1,我就认为我完成了,如果我得到0,我就认为它还没有准备好;
String line = in.readline();
line += 'n'; // or "rn" if you like