我使用 Jackson 来解析 JSON 文件。该文件作为流传递给 Jackson 以创建解析器。这是示例代码:
JsonFactory f = new JsonFactory();
JsonParser parser = f.createParser(inputStream);
我知道 createParser() 将流中的数据预取到输入缓冲区中。从此 inputBuffer 提供对 nextToken() 的后续调用。在我的应用程序中,除了解析之外,我还想跟踪 inputStream 的文件偏移量,直到我使用了数据。由于这种缓冲,偏移跟踪不起作用。
有谁知道是否有办法在 Jackson 中禁用缓冲?或者,是否有 API 调用可用于确定缓冲区是否包含尚未使用的数据?
最佳答案
为什么不使用 JsonParser.getTokenLocation()
或 JsonParser.getCurrentLocation()
来跟踪文件偏移量?
返回的对象好像有字节位置(除了字符位置),应该是在底层输入流中定位...
关于java - Jackson 解析器中的 InputBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771070/