- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将行追加到nodejs 中的文件中。我写了下面一段代码。
/* Name : test.js */
/* globals require,__dirname */
var fs = require("fs");
for (var i = 0; i < 100000; i++) {
fs.appendFileSync(__dirname+'/out.txt', "line " + i + "\n");
}
但是当我运行这个程序时,我收到以下错误。
$ node test.js
fs.js:584
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: EBUSY: resource busy or locked, open 'd:\<redacted>\out.txt'
at Error (native)
at Object.fs.openSync (fs.js:584:18)
at Object.fs.writeFileSync (fs.js:1224:33)
at Object.fs.appendFileSync (fs.js:1283:6)
at Object.<anonymous> (d:\<redacted>\test.js:3:8)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Function.Module.runMain (module.js:457:10)
我已经搜索过,但找不到任何原因或解决方案。有人可以解释一下为什么会出现此错误以及如何修复它吗?
当我尝试以下方法时,它有效,但这对于我试图解决的问题来说不太可行。
/* globals require,__dirname */
var fs = require("fs");
var buffer = "";
for (var i = 0; i < 100000; i += 1) {
var line = 'line ' + i + '\n';
buffer += line; // keep the line in buffer
}
fs.appendFileSync(__dirname+'/out.txt', buffer); // now write the buffer
提前致谢。
最佳答案
你的代码对我有用,但速度非常慢,需要几分钟才能完成文件写入(准确地说是 269621.425ms)。您的问题可能是因为在很短的时间内进行了如此多的访问,我想它对我有用,因为我使用的是 SSD。
对于您的问题,streams可能会很有帮助。它速度快且内存效率高(您不必存储巨大的缓冲区变量)。我不知道你到底想做什么,所以这是使用流编写的示例(为了方便起见,我使用 event-stream
):
var fs = require('fs');
var es = require('event-stream');
console.time('done in');
es.readable(function (count, next) {
for (var i = 0; i < 100000; i++) {
this.emit('data', 'line ' + i + "\n");
}
this.emit('end');
console.timeEnd('done in');
next();
}).pipe(fs.createWriteStream('out.txt'));
done in: 90.561ms
关于javascript - Nodejs - fs.appendFileSync 抛出错误 EBUSY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454702/
所以,我在这行代码中遇到了错误; else if(lockError == EBUSY) 我得到了错误; use of undeclared identifier 'EBUSY' 如何将我的 int
我正在单步执行我们的可执行文件链接到的第三方库中的一些代码,特别是“关闭”代码。我正在向我们的应用程序发送 SIGQUIT,这将关闭第三方对象。 出于某种原因,该库对 pthread_mutex_de
在退出之前,我按以下顺序从 main() 调用: pthread_cancel() 其他线程使用正在“等待”的 mtx(他们正在等待其他 cond_variable 和 mutex。也许这就是问题所在
我有一个非常简单的 Gulpfile: var gulp = require('gulp'), prefix = require('gulp-autoprefixer'), gsass
这是我的问题。我目前正在更新 arm 嵌入式 Linux 机器的内核,从 4.1 到 4.14.73。 我遇到了驱动程序方面的问题。对于内核 4.1,在使用 request_irq 注册 irq 之前
strerror() 函数返回简短的错误描述,将错误编号作为参数。例如,如果参数为ENOTDIR,则返回“Not a directory”,如果参数为EBUSY,则返回“Device or resou
在我所有的搜索尝试中,我只能找到试图修复“EBUSY:资源繁忙或锁定”错误的人。 我想要的是有意地(暂时)将文件置于此状态。如何做到这一点? 我尝试使用来自 NodeJS 的 fs.open、fs.c
有时当我尝试启动 angular-cli 命令时: ng build --app myApplication -w 我收到以下错误: EBUSY: resource busy or locked, u
我正在尝试将行追加到nodejs 中的文件中。我写了下面一段代码。 /* Name : test.js */ /* globals require,__dirname */ var fs = req
我的应用中有一个奇怪的错误。 在我的应用程序中,可以下载一个 zipFile,按原样读取内容并删除它。它到底是什么并不重要。 问题:只有在摩托罗拉 Xoom(4.0.4 版)上我可以下载文件,解压缩,
我的应用程序遇到了这个问题,所以我有一个 stage 文件夹,我们在其中接收文件,目录上有一个 fs.watch,它将监视文件并将文件移动到另一个目录,一旦它看到它。只是为了模仿这个过程,我让应用程序
我正在运行 windows7 并且刚刚安装了以下... c:\design_centre_dev\workspace>node -v v5.10.1 c:\design_centre_dev\work
尝试运行 Nodejs 应用程序来测试 Raspberry 3 B + Gpio Onoff 模块,但是当我尝试运行该应用程序时出现此错误 fs.js:114 throw err; Error: EB
刚刚使用 pip install -U pytest 安装了 py.test 没有错误,但是我们在尝试启动 py.test 时出现错误: EBUSY: [资源设备]: listdir('C:\\Use
在Windows中执行以下步骤后,将发生错误: 打开一个终端:npm run start:dev 打开另一个终端:ng build --watch 但是,通过使用以上命令,它可以在Mac中工作。 pa
我花了几个小时试图自己解决这个问题,同时寻找类似的问题,但没有任何运气,所以我得出的结论是,唯一要做的就是在这里发布一个问题。 我正在开发一个 Web 应用程序的后端,我在其中使用 MongoDB 进
请告诉我是否有任何 sdk,我可以通过它从 c 或 cpp 通信 Oracle eBusiness 套件。我知道 OCCI 用于与 Oracle DB 交互,我正在寻找一种与 Oracle 电子商务套
我正在为 IRQ 号 8 开发一个驱动程序,它对应于 RTC 时钟。我有以下问题。当我用 request_irq 请求那个 IRQ 时,我得到一个 EBUSY 错误。我认为首先使用 free_irq(
我是 Node.js 的新手,我想弄清楚以下代码有什么问题。 var fs = require('fs'); var dir = "C:\\"; var files = fs.readdirSync(
我正在尝试编写一些基本的内核模块——使用 netlink 套接字(用户端的 libnl)的用户空间程序通信。用户空间程序向内核发送消息并期待回复。不幸的是,接收回复失败,返回值 -16 (EBUSY)
我是一名优秀的程序员,十分优秀!