使用mongodb对文件(图片、音频、视频)的存储、读取操作
实现代码示例:
package mongo.util;
import java.io.File;
import java.io.IOException;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;
/**
* 使用mongodb对文件(图片、音频、视频)的存储、读取操作
* @author wangzp
*/
public class Mon_GridFS {
public static void main(String[] args) throws Exception {
//saveFile();
readFile();
}
/**
* 存储文件
* @throws IOException
*/
public static void saveFile() throws IOException{
//连接服务器,创建实例
Mongo mongo = new Mongo("127.0.0.1",27017);
//连接数据库
DB db = mongo.getDB("testGridFS");
//文件是在DB基础上实现的,与表和文档没有关系
GridFS gridFS = new GridFS(db);
String fileName = "2-2 数据库设计.mp4";
File readFile = new File("d:/0202/"+fileName);
GridFSInputFile mongofile = gridFS.createFile(readFile);
//再添加对象
mongofile.put("path", "d:/0202/"+fileName);
//保存
mongofile.save();
}
/**
* 读取文件,写入磁盘
* @throws Exception
*/
public static void readFile() throws Exception{
//1.连接服务器,创建实例
Mongo mongo = new Mongo("127.0.0.1",27017);
//连接数据库
DB db = mongo.getDB("testGridFS");
//文件是在DB基础上实现的,与表和文档没有关系
GridFS gridFS = new GridFS(db);
//2.查找条件
DBObject query = new BasicDBObject();
List<GridFSDBFile> listFile = gridFS.find(query);
GridFSDBFile gridFSDBFile = listFile.get(0);
//3.获取文件名
//注意:不是fs中的表的列名,而是根据调试gridDBFile中的属性而来
String fileName = (String)gridFSDBFile.get("filename");
System.out.println("从MongoDB获得的文件名为:"+fileName);
//4.创建空文件
File writeFile = new File("d:/"+fileName);
if(!writeFile.exists()){
writeFile.createNewFile();
}
//5.写入文件
gridFSDBFile.writeTo(writeFile);
}
}
图片位置:
mongoDB 数据库客户端
(责任编辑:IT) |