GridFS使用java驱动程序仅检索一系列文件

st-*_*t-h 2 java mongodb gridfs

文档提到可以使用gridFS检索一系列文档.但是我还没有找到任何关于此的细节.我想使用java驱动程序获取一个文件范围,用于支持音频流的grails应用程序.在这种情况下,我是否需要手动获取和组装软件包?还是有更好的方法吗?

Ala*_*cer 5

您可以跳过不需要的文件部分,并从那里只读取您需要的内容.

    GridFSDBFile file = files.findOne("file");

    InputStream inputStream = file.getInputStream();

    long actuallySkipped = inputStream.skip(numberOfBytesToSkip);
    // read from here...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 如果您查看 com.mongodb.gridfs.GridFSDBFile.MyInputStream#skip 的源代码(https://github.com/mongodb/mongo-java-driver/blob/2.11.x/src/main/com/mongodb /gridfs/GridFSDBFile.java#L164) 你会看到它所做的就是更新当前块,偏移到那个块并加载那个块。较早的数据永远不会被加载......非常有效。 (2认同)