Você pode usar o GridFS . Especialmente quando você precisa armazenar arquivos maiores (> 16 MB), este é o método recomendado:
File f = new File("sample.zip");
GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(f);
gfsFile.setFilename(f.getName());
gfsFile.setId(id);
gfsFile.save();
Ou caso você tenha um InputStream
in
:GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(in);
gfsFile.setFilename("sample.zip");
gfsFile.setId(id);
gfsFile.save();
Você pode carregar um arquivo usando um dos
GridFS.find
métodos:GridFSDBFile gfsFile = gfs.findOne(id);
InputStream in = gfsFile.getInputStream();