我正在为基于行的临时协议编写解析器,因此该BufferedReader.readLine
方法的功能非常适合。
但是我有一个特定的要求,即行结尾必须准确,并且如果仅找到or \r\n
,则应抛出错误(或应用其他解析逻辑)。\r
\n
那么有没有办法在不滚动自定义分行实现的情况下强制执行此操作?
如果没有,实现这一点的最佳方法是什么?
好吧,您可能会覆盖readLine()
自身-但您基本上必须复制其中的所有代码。没有什么可以仅仅为了改变行尾而进行调整。
鉴于您的代码无法直接访问缓冲区,我怀疑您实际上可以更简单地实现一个可能从 a读取的全新类,BufferedReader
以避免自己进行大量缓冲。(即只是在方法的持续时间内缓冲readLine
,而不是在实例中拥有一个缓冲区。)
没有办法,只能扫描无效字符序列的行。这可以通过覆盖(正如 Jon 提到的)中的方法来完成,或者在您的阅读课上执行此操作readLine()
。BufferedReader