MongoDB Java Driver 源码分析(12):GridFSFile、GridFSDBFile 和 GridFSInputFile
GridFSFile 类表示 GridFS 中的文件的信息,它是一个抽象类,分别被 GridFSDBFile (表示从数据库中读取的文件) 和 GridFSInputFile(表示将要保存到数据库中的文件 ) 继承。
GridFSFile 类包含下列属性(相应地有一系列的 get 方法)
GridFSDBFile (从数据库中读取的文件)
【将文件写入输出流】
GridFSDBFile 的 writeTo 方法可以将文件写入输出流,以达到读取文件数据的目的。
【获取输入流】
另一种读取数据的方式是直接获取输入流。
GridFSInputFile 准备写入数据库的文件
GridFSInputFile 可以获得输出流,从而写入需要保存的数据,写入完毕后通过 close 方法提交修改。// 保存文件数据到数据库 DBObject chunk = BasicDBObjectBuilder.start() .add( "files_id", _id ) .add( "n", _currentChunkNumber ) .add( "data", writeBuffer ).get(); _fs._chunkCollection.save( chunk );
借助 DBCollection.save 保存了数据。构造的 DBObject 包含三个属性:files_id (文件标识)、n(文件块序号)和 data(文件数据)