Jackson 解析器中的 InputBuffer

InputBuffer in Jackson parser

我使用 Jackson 来解析 JSON 文件。该文件作为流传递给 Jackson 以创建解析器。这是示例代码:

JsonFactory f = new JsonFactory();
JsonParser parser = f.createParser(inputStream);

我知道 createParser() 将流中的数据预取到输入缓冲区中。从此 inputBuffer 提供对 nextToken() 的后续调用。在我的应用程序中,除了解析之外,我还想跟踪 inputStream 的文件偏移量,直到我使用了数据。由于这种缓冲,偏移跟踪不起作用。

有谁知道是否有办法在 Jackson 中禁用缓冲?或者,是否有一个 API 调用可用于确定缓冲区是否包含尚未使用的数据?

为什么不使用 JsonParser.getTokenLocation()JsonParser.getCurrentLocation() 来跟踪文件偏移量?

返回的对象好像有字节位置(除了字符位置),应该是底层输入流中的位置...

http://fasterxml.github.io/jackson-core/javadoc/2.2.0/com/fasterxml/jackson/core/JsonParser.html#getCurrentLocation()