我很难让node.js在正确的位置写入我的文件.这是我的问题的示范案例:
fs = require('fs'); foo = fs.openSync('foo.txt','r+'); fs.writeSync(foo,"hello",5,5); fs.close(foo);
foo.txt有一行:
12345678901234567890
预期的输出是foo.txt包含12345hello1234567890,但我得到的是hello678901234567890.我正在运行节点v0.8.16.
这是一个错误,还是我做错了什么?
编辑:我一直在引用这些文档:fs.writeSync(fd,buffer,offset,length,position)
解决方法
正如指向文档的链接所说,第二个参数是一个缓冲区,但在您的代码中,您传递的是一个字符串.这样做会导致Node回退到一个不同的函数签名,该签名是为了向后兼容而存在的.
function(fd,str,position,encoding);
所以传递适当的论点
var buf = new Buffer("hello"); fs.writeSync(foo,buf,buf.length,5);