可能有人发现,用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;
自恋一下@_@
分享到:
相关推荐
例如,使用try-with-resources语句自动关闭流,或使用多线程上传大量文件。MongoDB Java驱动还提供了高级特性,如文件版本控制和访问权限管理。 总之,通过Java和MongoDB的GridFS,我们可以便捷地处理MP4等大文件的...
保存并关闭`php.ini`文件,然后重启你的Web服务器(如Apache或Nginx)以使更改生效。 ```bash sudo service httpd restart ``` 最后,验证MongoDB扩展是否成功加载。通过运行PHP命令行来检查: ```bash php -i | ...
接着解压并移动文件至 `/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是一种分布式的文件存储数据库,由C++语言编写,主要用于为Web应用提供一种高度可扩展且高性能的数据存储解决方案。它处于传统的关系型数据库与新兴的NoSQL(Not Only SQL)数据库之间,在NoSQL数据库类别中...
打开文件,添加MongoDB的bin目录路径(例如:/path/to/mongodb/bin)到PATH变量,然后保存并关闭文件。更新环境变量的命令可能是`source /etc/profile`,让更改立即生效。 MongoVUE是一个直观的MongoDB管理工具,它...
- 关闭所有对话框并保存更改。 - **测试MongoDB服务**: - 打开新的命令提示符窗口; - 使用`mongo`命令直接连接到MongoDB服务器。 #### 三、确保MongoDB正常工作 - **访问MongoDB**:通过命令行或MongoDB ...
保存并关闭文件,然后执行: ``` sudo systemctl enable mongodb sudo systemctl start mongodb ``` 7. **验证安装**:通过运行mongo shell来检查MongoDB是否正常运行: ``` ./mongo ``` 现在,MongoDB ...
保存并关闭文件。 5. 更新系统服务,并启动MongoDB: ``` sudo systemctl daemon-reload sudo systemctl start mongodb sudo systemctl enable mongodb ``` 6. 验证MongoDB是否运行成功: ``` mongo --version ```...
保存并关闭文件,然后启用并启动MongoDB服务: ```bash sudo systemctl enable mongodb sudo systemctl start mongodb ``` 现在,MongoDB已经安装并运行在你的Linux系统上了。你可以通过`mongo`命令行客户端连接到...
保存并退出配置文件后,我们可以使用`mongod`命令并指定配置文件来启动MongoDB服务,同时绑定到localhost: ```bash /usr/local/mongodb/bin/mongod --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf `...
- **定义与特点**:MongoDB是一种基于分布式文件存储的数据库系统,属于NoSQL数据库的一种。它将数据以BSON(Binary JSON)格式存储,这种格式类似于JSON文档,非常灵活且易于扩展。MongoDB支持动态查询、索引、分片...
保存并关闭文件后,使环境变量生效: ```bash source /etc/profile ``` ##### 2.3 配置服务启动脚本 MongoDB 的配置信息通常通过命令行参数或配置文件来设置。为了确保MongoDB在每次系统启动时都能自动运行,需要...
保存并关闭文件。 5. **配置MongoDB**:创建一个配置文件`/etc/mongodb.conf`,用于设置端口、日志文件等: ``` sudo nano /etc/mongodb.conf ``` 添加以下配置(根据实际需求调整): ``` port = 27017 ...
- **启动失败**:如果MongoDB无法正常启动,可能是由于之前未正确关闭服务,导致产生了锁文件。此时,可以尝试手动删除锁文件 `mongod.lock`,然后再重新启动MongoDB。 - **权限问题**:在某些情况下,MongoDB可能...
保存并关闭编辑器,然后赋予脚本执行权限: ```bash sudo chmod +x /etc/init.d/mongod ``` 现在,我们可以通过以下命令来启动、停止或重启MongoDB服务: ```bash sudo service mongod start sudo service mongod...
保存并关闭文件后,加载新的系统服务单元: ``` sudo systemctl daemon-reload ``` 然后启动MongoDB服务: ``` sudo systemctl start mongod ``` 如果一切顺利,MongoDB应该已经开始运行。验证MongoDB是否正常启动,...
在上述过程中,我们都是手动使用mongod命令启动MongoDB的,但这样关闭计算机后,下次再进来它又没启动了。因此,我们可以把mongod放到服务自启动项中,这样计算机一开启mongod服务也就启动了。 编辑/etc/rc.local,...