`
lverson24
  • 浏览: 1614 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

mongodb保存文件要关闭流吗?

阅读更多
可能有人发现,用MongoDB保存一个文件后文件一直被占用的情况,本人证实,这个是jar包问题,代码如下:
File imageFile = new File(filePath);
GridFS gfsPhoto = new GridFS(mongoTemplate.getDb(), connName);
GridFSInputFile gfsFile = null;
FileInputStream fileInputStream = new FileInputStream(imageFile);
String fileName = imageFile.getName();

/**
* 用这种而不用gfsPhoto.createFile(imageFile)是因为此Jar包Bug,
* 导致文件流未关闭而无法删除文件,估计是在save后没有关闭FileInputStream
*/
gfsFile = gfsPhoto.createFile(fileInputStream, fileName);
gfsFile.setFilename(newFileName);
gfsFile.save();
// gfsFile.getOutputStream().flush();
// gfsFile.getOutputStream().close();

if (!(null == fileInputStream)) {
fileInputStream.close();
log.info("添加PDF文件中关闭了文件输入流!");
}

// 删除pdf文件
if (imageFile.delete()) {
log.info("删除pdf文件成功");
} else {
log.info("删除pdf文件失败");
}
return;

自恋一下@_@
分享到:
评论

相关推荐

    使用java上传MP4文件至mongodb数据库,并下载 源代码

    例如,使用try-with-resources语句自动关闭流,或使用多线程上传大量文件。MongoDB Java驱动还提供了高级特性,如文件版本控制和访问权限管理。 总之,通过Java和MongoDB的GridFS,我们可以便捷地处理MP4等大文件的...

    centos6系统 编译php5.6 的mongodb.so文件

    保存并关闭`php.ini`文件,然后重启你的Web服务器(如Apache或Nginx)以使更改生效。 ```bash sudo service httpd restart ``` 最后,验证MongoDB扩展是否成功加载。通过运行PHP命令行来检查: ```bash php -i | ...

    MongoDB+Nginx配置

    接着解压并移动文件至 `/usr/local/mongodb`。 ```bash tar zxf mongodb-linux-i686-1.8.2.tgz mv mongodb-linux-i686-1.8.2 /usr/local/mongodb ``` ##### 2.4 创建数据库及日志文件夹 创建MongoDB的数据库和日志...

    分布式存储数据库MongoDB教程

    MongoDB是一种分布式的文件存储数据库,由C++语言编写,主要用于为Web应用提供一种高度可扩展且高性能的数据存储解决方案。它处于传统的关系型数据库与新兴的NoSQL(Not Only SQL)数据库之间,在NoSQL数据库类别中...

    MongoDB.tgz及MongoVUE可视化工具

    打开文件,添加MongoDB的bin目录路径(例如:/path/to/mongodb/bin)到PATH变量,然后保存并关闭文件。更新环境变量的命令可能是`source /etc/profile`,让更改立即生效。 MongoVUE是一个直观的MongoDB管理工具,它...

    MongoDB4.28安装详细步骤及启动配置教程(Windows10)

    - 关闭所有对话框并保存更改。 - **测试MongoDB服务**: - 打开新的命令提示符窗口; - 使用`mongo`命令直接连接到MongoDB服务器。 #### 三、确保MongoDB正常工作 - **访问MongoDB**:通过命令行或MongoDB ...

    mongodb-linux-aarch64-ubuntu1804-4.2.5.tgz

    保存并关闭文件,然后执行: ``` sudo systemctl enable mongodb sudo systemctl start mongodb ``` 7. **验证安装**:通过运行mongo shell来检查MongoDB是否正常运行: ``` ./mongo ``` 现在,MongoDB ...

    mongodb-linux-x86_64-rhel62-4.0.0.tgz

    保存并关闭文件。 5. 更新系统服务,并启动MongoDB: ``` sudo systemctl daemon-reload sudo systemctl start mongodb sudo systemctl enable mongodb ``` 6. 验证MongoDB是否运行成功: ``` mongo --version ```...

    mongodb-linux-x86_64-6.2.10.tgz

    保存并关闭文件,然后启用并启动MongoDB服务: ```bash sudo systemctl enable mongodb sudo systemctl start mongodb ``` 现在,MongoDB已经安装并运行在你的Linux系统上了。你可以通过`mongo`命令行客户端连接到...

    centos安装mongodb数据库

    保存并退出配置文件后,我们可以使用`mongod`命令并指定配置文件来启动MongoDB服务,同时绑定到localhost: ```bash /usr/local/mongodb/bin/mongod --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf `...

    MongoDB权威指南 中文版

    - **定义与特点**:MongoDB是一种基于分布式文件存储的数据库系统,属于NoSQL数据库的一种。它将数据以BSON(Binary JSON)格式存储,这种格式类似于JSON文档,非常灵活且易于扩展。MongoDB支持动态查询、索引、分片...

    mongodb数据库

    保存并关闭文件后,使环境变量生效: ```bash source /etc/profile ``` ##### 2.3 配置服务启动脚本 MongoDB 的配置信息通常通过命令行参数或配置文件来设置。为了确保MongoDB在每次系统启动时都能自动运行,需要...

    mongodb 安装包

    保存并关闭文件。 5. **配置MongoDB**:创建一个配置文件`/etc/mongodb.conf`,用于设置端口、日志文件等: ``` sudo nano /etc/mongodb.conf ``` 添加以下配置(根据实际需求调整): ``` port = 27017 ...

    mongodb linux下安装

    - **启动失败**:如果MongoDB无法正常启动,可能是由于之前未正确关闭服务,导致产生了锁文件。此时,可以尝试手动删除锁文件 `mongod.lock`,然后再重新启动MongoDB。 - **权限问题**:在某些情况下,MongoDB可能...

    mongodb linux 64位

    保存并关闭编辑器,然后赋予脚本执行权限: ```bash sudo chmod +x /etc/init.d/mongod ``` 现在,我们可以通过以下命令来启动、停止或重启MongoDB服务: ```bash sudo service mongod start sudo service mongod...

    mongodb-linux-x86_64-rhel70-4.4.3.tgz

    保存并关闭文件后,加载新的系统服务单元: ``` sudo systemctl daemon-reload ``` 然后启动MongoDB服务: ``` sudo systemctl start mongod ``` 如果一切顺利,MongoDB应该已经开始运行。验证MongoDB是否正常启动,...

    linux_mongoDB安装及配置

    在上述过程中,我们都是手动使用mongod命令启动MongoDB的,但这样关闭计算机后,下次再进来它又没启动了。因此,我们可以把mongod放到服务自启动项中,这样计算机一开启mongod服务也就启动了。 编辑/etc/rc.local,...

Global site tag (gtag.js) - Google Analytics