> 数据库 > MongoDB >

使用mongodb对文件(图片、音频、视频)的存储、读取操作

使用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)