我使用Jackson解析JSON文件。该文件作为流传递给Jackson以创建解析器。以下是示例代码:
JsonFactory f = new JsonFactory();
JsonParser parser = f.createParser(inputStream);
我知道createParser()从流中预取数据到输入缓冲区。从inputBuffer提供对nextToken()的后续调用。在我的应用程序中,除了解析之外,我还想跟踪inputStream的文件偏移量,直到我消耗了数据。由于这种缓冲,偏移跟踪不起作用。
有没有人知道杰克逊是否有办法禁用缓冲?或者,是否有一个API调用,我可以用来确定缓冲区是否有尚未消耗的数据?
答案 0 :(得分:4)
为什么不使用JsonParser.getTokenLocation()
或JsonParser.getCurrentLocation()
来跟踪文件偏移量?
返回的对象似乎有字节位置(除了字符位置),它应该位于底层输入流中......