per*_*iae 6 javascript node.js
我很难让node.js在正确的位置写入我的文件.这是我的问题的示范案例:
fs = require('fs');
foo = fs.openSync('foo.txt','r+');
fs.writeSync(foo, "hello", 0, 5, 5);
fs.close(foo);
Run Code Online (Sandbox Code Playgroud)
foo.txt 有一行:
12345678901234567890
Run Code Online (Sandbox Code Playgroud)
预期的输出是为了foo.txt包含12345hello1234567890,但我得到了hello678901234567890.我跑node v0.8.16.
这是一个错误,还是我做错了什么?
编辑:我一直在引用这些文档:fs.writeSync(fd,buffer,offset,length,position)
正如文档的链接所说,第二个参数是a Buffer,但是在你的代码中你传递的是一个字符串.这样做会导致Node回退到一个不同的函数签名,该签名是为了向后兼容而存在的.
function(fd, str, position, encoding);
Run Code Online (Sandbox Code Playgroud)
所以传递适当的论点
var buf = new Buffer("hello");
fs.writeSync(foo, buf, 0, buf.length, 5);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |