当前位置:嗨网首页>书籍在线阅读

09-使用Java从MongoDB GridFS中删除文件

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

24.3.5 使用Java从MongoDB GridFS中删除文件

使用Java访问和操作MongoDB GridFS存储区中的文件 本节将引导您完成在Java应用程序中实现MongoDB GridFS存储的流程,包括访问MongoDB GridFS以及列出、添加、获取和删除文件的步骤。 在这个示例中,方法main()连接到MongoDB数据库,并调用各种方法来访问GridFS以列出、添加、获取和删除文件。 方法listGridFSFiles()用于在Java应用程序运行期间的各个时点显示MongoDB GridFS中当前存储的文件;方法putGridFSFile()将一个文件存储到GridFS中;方法getGridFSFile()从GridFS获取一个文件并显示其内容;方法deleteGridFSFile()从GridFS中删除文件。 请执行如下步骤,使用Java列出、获取、添加和删除文件。 1.确保启动了MongoDB服务器。 2.确保安装并配置了Java MongoDB驱动程序。 3.在文件夹code/hour24中新建一个文件,并将其命名为JavaGridFS.java。 4.在这个文件中输入程序清单24.1所示的代码。这些代码访问MongoDB GridFS。 5.将这个文件存盘。 6.打开一个控制台窗口,并切换到目录code/hour24。 7.执行下面的命令编译这个新的Java文件: 8.执行下面的命令运行这个Java应用程序。程序清单24.2显示了这个Java应用程序的输出。 程序清单24.1 JavaGridFS.java:使用Java列出、添加、获取和删除MongoDB GridFS中的文件 程序清单24.2 JavaGridFS.py-output:使用Java列出、添加、获取和删除MongoDB GridFS中文件的输出

在Java中,要将文件从GridFS存储区中删除,最简单的方式是使用GridFS对象的方法remove()。这个方法将文件从MongoDB GridFS存储区中删除,其语法如下:

remove(DBObject query)
remove(ObjectId, id)
remove(String filename)

例如,用下面的语句删除文件test.txt:

GridFS myFS = new GridFS(db);
myFS.remove("test.txt");

▼ Try It Yourself

javac JavaGridFS.java
java JavaGridFS
01 import com.mongodb.MongoClient;
02 import com.mongodb.DB;
03 import com.mongodb.DBObject;
04 import com.mongodb.DBCursor;
05 import com.mongodb.gridfs.*;
06 import java.io.*;
07 public class JavaGridFS {
08    public static void main(String[] args) {
09       try {
10          MongoClient mongoClient = new MongoClient("localhost", 27017);
11          DB db = mongoClient.getDB("myFS");
12          System.out.println("\nFiles Before Put:");
13          JavaGridFS.listGridFSFiles(db);
14          JavaGridFS.putGridFSFile(db);
15          System.out.println("\nFiles After Put:");
16          JavaGridFS.listGridFSFiles(db);
17          System.out.println("\nContents of Retrieve File:");
18          JavaGridFS.getGridFSFile(db);
19          JavaGridFS.deleteGridFSFile(db);
20          System.out.println("\nFiles After Delete:");
21          JavaGridFS.listGridFSFiles(db);
22       } catch (Exception e) { System.out.println(e); }
23    }
24    public static void listGridFSFiles(DB db){
25          GridFS myFS = new GridFS(db);
26          DBCursor files = myFS.getFileList();
27          for(final DBObject file : files) {
28              System.out.println(file);
29       }
30    }
31    public static void putGridFSFile(DB db){
32       try{
33          File newFile = new File("java.txt");
34          BufferedWriter output =
35               new BufferedWriter(new FileWriter(newFile));
36          output.write("Stored From Java");
37          output.close();
38          newFile = new File("java.txt");
39          GridFS myFS = new GridFS(db);
40          GridFSInputFile gridFile = myFS.createFile(newFile);
41          gridFile.save();
42       } catch (Exception e) { System.out.println(e); }
43    }
44    public static void getGridFSFile(DB db){
45       try{
46          GridFS myFS = new GridFS(db);
47          GridFSDBFile file = myFS.findOne("java.txt");
48          file.writeTo(new File("JavaRetrieved.txt"));
49          File inFile = new File("JavaRetrieved.txt");
50          BufferedReader input =
51               new BufferedReader(new FileReader(inFile));
52          System.out.println(input.readLine());
53          input.close();
54       } catch (Exception e) { System.out.println(e); }
55    }
56    public static void deleteGridFSFile(DB db){
57       GridFS myFS = new GridFS(db);
58       myFS.remove("java.txt");
59    }
60 }
Files Before Put:
Files After Put:
{ "_id" : { "$oid" : "52f43076ba4141ceac68f0f6"} , "chunkSize" : 262144 ,
  "length" : 16 , "md5" : "5186b45e4f6a4b8ddd8ff3579148765d" , "filename" : "java. txt" ,
  "contentType" : null , "uploadDate" : { "$date" : "2014-02-07T01:01:42.586Z"} ,
  "aliases" : null }
Contents of Retrieve File:
Stored From Java
Files After Delete: