2016-01-13 5 views
1

Я хотел бы сохранить файл в mongoDB и получить его оттуда для его обработки. Я использовал GRIDFS хранить егоХранение и извлечение файла в MongoDB с использованием Java & GridFs

Mongo mongo = new Mongo("localhost", 27017); 
    DB db = mongo.getDB("HelloWorldDB"); 
    DBCollection collection = db.getCollection("Uploaded_Exclusion_files"); 
    GridFS gridfs = new GridFS(db, "downloads"); 
    GridFSInputFile gfsFile = gridfs.createFile(new File(fileName)); 
    gfsFile.setFilename("filename"); 
    gfsFile.save(); 

    BasicDBObject info = new BasicDBObject(); 
    info.put("name", "MongoDB"); 
    info.put("fileName", "filename"); 
    info.put("rawName", "fromJSON.csv"); 
    info.put("rawPath", "d:/fromJSON.csv"); 

    // 
    // Let's store our document to MongoDB 
    // 
    collection.insert(info, WriteConcern.SAFE); 


    DBCursor cursor= collection.find(info); 
    while(cursor.hasNext()){ 
     System.out.println("Result "+cursor.next()); 
    } 
     System.out.println("Done");  

но в момент извлечения файла не я знаю, что сделать это как файл и обработать его.

  GridFSDBFile gfsFileOut = (GridFSDBFile) gridfs.findOne("filename"); 
      System.out.println(gfsFileOut.getInputStream()); 
      //##### WHAT TO DO TO GET THE FILE 

    BufferedReader br = null; 
    try { 
     String sCurrentLine; 
     br = new BufferedReader(new FileReader(<#####I WANT TO PASS THE FILE TO PROCESS IT######>)); 

     // ...   
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      if (br != null) 
       br.close(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 

Я хочу, чтобы удалить часть создания файла в сервере и только хочет, чтобы хранить в MongoDB и получить его для обработки.

ответ

1

Я получил ответ, чтобы получить файл из MongoDB используя GridFS

GridFSDBFile gfsFileOut = (GridFSDBFile) gridfs.findOne(rawName); 
    System.out.println(gfsFileOut.getInputStream()); 
    InputStream is = gfsFileOut.getInputStream(); 

    // Reading the excel file 
    List<String> list = null; 
    BufferedReader br = null; 
    try { 
     String sCurrentLine; 
     br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
Смежные вопросы