在Mongodb中我有一个测试集合,其中包含一个json文档。我能够检索json并将其记录到我的IDE控制台。现在我想将这个json存储到我的本地文件系统上的文件(即test.json)中。我试图创建这样的代码,但它不起作用。第4行存在一些问题,因为文件无法写入光标。
如何从mongodb获取对象到文件系统,是否有任何示例代码与我共享。
DBCursor cursor = collection.find();
FileWriter file = new FileWriter("D:\\test1.json");
while( cursor.hasNext() ) {
file.write(cursor.toJSONString(); // this is line 4
}
file.close();
System.out.println("JSON created successfully");
答案 0 :(得分:0)
缺少(在new
之后和write
之前):
file.open();
答案 1 :(得分:0)
试试这个
import java.io.File;
import java.io.FileWriter;
import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
public class App {
public static void main(String[] args) throws Exception{
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("test");
DBCollection collection = db.getCollection("dummyColl");
// convert JSON to DBObject directly
DBObject dbObject = (DBObject) JSON
.parse("{'name':'mkyong', 'age':30}");
collection.insert(dbObject);
DBCursor cursorDoc = collection.find();
while (cursorDoc.hasNext()) {
System.out.println(cursorDoc.next());
}
String st=JSON.serialize(cursorDoc);
File file=new File("test.json");
FileWriter fileWriter=new FileWriter(file);
fileWriter.write(st);
fileWriter.close();
System.out.println("Done");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}