• 大小: 782KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Java
  • 标签: Mongodb  Java  GridFS  

资源简介

Java 操作Mongodb中存储的文件的实例

资源截图

代码片段和文件信息

package com.test;

import java.io.File;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.bson.types.objectId;

import com.mongodb.BasicDBobject;
import com.mongodb.DB;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;

/**
 * @author: zhengjb09610
 * @since: 2014-7-28 下午2:19:36
 */
public class MongoTest {
private static Mongo mg = null;
private static DB db = null;
private static GridFS myFS = null;

@SuppressWarnings(“deprecation“)
public MongoTest(String ip int port String dbName) {
try {
mg = new Mongo(ip port);
db = mg.getDB(dbName);
myFS = new GridFS(db);
} catch (Exception e) {
e.printStackTrace();
}
}

/** 查询MONGODB中的文件集合 */
public void queryGridFS() {
DBCursor cursor = myFS.getFileList();
while (cursor.hasNext())
System.out.println(cursor.next());
}

/** 将本地文件存储到MONGODB中 */
public void saveGridFS(String localPath) {
try {
File f = new File(localPath);
GridFSInputFile inputFile = myFS.createFile(f);
inputFile.save();
System.out.println(“save success!“);
} catch (Exception e) {
e.printStackTrace();
}
}

/** 删除MONGODB中文件 */
public void removeGridFS(String oid) {
myFS.remove(new BasicDBobject(“_id“ new objectId(oid)));
System.out.println(“remove success!“);
}

/** 读取出MONGODB中的文件并存储到本地 */
public void readGridFS(String oid String localPath) {
try {
GridFSDBFile inputFile = myFS.findOne(new BasicDBobject(“_id“
new objectId(oid)));
inputFile.writeTo(localPath);
System.out.println(“save local path.“);
} catch (Exception e) {
e.printStackTrace();
}
}

/** 读取出MONGODB中的文件并存储到远程 */
public void readFTPGridFS(String oid String ip int port String userName
String passwd String destination) {
try {
GridFSDBFile inputFile = myFS.findOne(new BasicDBobject(“_id“
new objectId(oid)));
InputStream is = inputFile.getInputStream();

FTPClient fc = new FTPClient();
fc.connect(ip port);
fc.login(userName passwd);
fc.setBufferSize(1024);
fc.setFileType(FTP.BINARY_FILE_TYPE);
fc.enterLocalPassiveMode();
if (fc.storeFile(new String(destination.getBytes(“GBK“)
“iso-8859-1“) is)) {
System.out.println(“upload success!“);
} else {
System.out.println(“upload false!“);
}
is.close();
fc.logout();
fc.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}

/** 关闭MONGODB连接 */
public void closeMongo() {
mg.close();
}

public static void main(String[] args) {
MongoTest mongodb = new MongoTest(“192.168.83.29“ 27017 “test“);

mongodb.saveGridFS(“E://test.xls“);
mongodb.queryGridFS();

mongodb.readGridFS(“53d5cbe6aaf67ea69090bbb7“ “D://test.xls“);

mongodb.readFTPGridFS(“

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-07-28 14:16  MongoDBTest\
     文件         473  2014-07-28 12:19  MongoDBTest\.classpath
     文件         387  2014-04-28 14:08  MongoDBTest\.project
     目录           0  2014-07-28 14:16  MongoDBTest\.settings\
     文件         598  2014-04-28 14:08  MongoDBTest\.settings\org.eclipse.jdt.core.prefs
     目录           0  2014-07-28 14:16  MongoDBTest\bin\
     目录           0  2014-07-28 14:16  MongoDBTest\bin\com\
     目录           0  2014-07-28 14:16  MongoDBTest\bin\com\test\
     文件        4536  2014-07-28 14:15  MongoDBTest\bin\com\test\MongoTest.class
     目录           0  2014-07-28 14:16  MongoDBTest\lib\
     文件      280983  2014-06-06 09:25  MongoDBTest\lib\commons-net-3.3.jar
     文件      586605  2014-04-28 13:55  MongoDBTest\lib\mongo-java-driver-2.12.0.jar
     目录           0  2014-07-28 14:16  MongoDBTest\src\
     目录           0  2014-07-28 14:16  MongoDBTest\src\com\
     目录           0  2014-07-28 14:16  MongoDBTest\src\com\test\
     文件        3255  2014-07-28 14:15  MongoDBTest\src\com\test\MongoTest.java

评论

共有 条评论