4

我正在为基于行的临时协议编写解析器,因此该BufferedReader.readLine方法的功能非常适合。

但是我有一个特定的要求,即行结尾必须准确,并且如果仅找到or \r\n,则应抛出错误(或应用其他解析逻辑)。\r\n

那么有没有办法在不滚动自定义分行实现的情况下强制执行此操作?
如果没有,实现这一点的最佳方法是什么?

4

2 回答 2

2

好吧,您可能会覆盖readLine()自身-但您基本上必须复制其中的所有代码。没有什么可以仅仅为了改变行尾而进行调整。

鉴于您的代码无法直接访问缓冲区,我怀疑您实际上可以更简单地实现一个可能从 a读取的全新类,BufferedReader以避免自己进行大量缓冲。(即只是在方法的持续时间内缓冲readLine,而不是在实例中拥有一个缓冲区。)

于 2013-06-19T11:38:50.300 回答
0

没有办法,只能扫描无效字符序列的行。这可以通过覆盖(正如 Jon 提到的)中的方法来完成,或者在您的阅读课上执行此操作readLine()BufferedReader

于 2013-06-19T11:41:43.557 回答