mongodb中GridFSDBFile保存文档到数据后,如何获取文档内容?不是输出到磁盘。
mongodb中GridFSDBFile保存文档到数据后,如何获取文档内容?
程序如下;
oid=ObjectId.massageToObjectId(strObjectId);
GridFSDBFile gfs=mongoService.getById(oid);
根据ID读取一个保存在数据库的文档记录,里面保存了一个实际文件,例如是一个WORD文档。在db.fs.files.find()可以查到。
根据上面的程序,System.out.println("输出MD5:"+gfs.getMD5()); 这样可以取该文件的一些属性,例如文件名,MD5值,ID值等。
但是我想直接取该文件的内容?该如何取?暂时没发现有GET属性可以直接取文档内容。
输出文件内容可以做到。例如:gfs.writeTo(System.out); 但是输出乱码,不知道如何解决。就算不乱码,也获取不到这个输出的内容,也就是捕获这个输出流的内容。 gfs.writeTo(File f); 这样子可以重新生成该文档在磁盘,打开没有乱码。
现在就是想把这个文档的内容,在程序里面获取,不要直接输出为文件,获取后 赋值给一个字符串变量,这样能否做到?
这样做的原因是想在程序里面分析保存文档的内容。最主要的是想把文档的内容进行分词。
如果在保存之前就进行分析,这样要分析文档的后缀名,因为TXT\DOC\CVS\PDF很多后缀名的输入流不一样,很明显一个例子:我获取TXT就很正常,但是DOC文件就乱码,每个后缀名都分析获取,也不现实,所以就想直接保存后在数据库获取文件内容进行分析。另外,还想在分词的时候获取保存在数据库里面的ID,这样容易定位。
分数不多了,希望有大牛可以解答一下.