我正在尝试打开和读取文件名spam0
,我想获取其内容并将它们写入另一个名为 的文件input.txt
,但出现错误。
这是我迄今为止尝试过的:
file0 = fs.open("./spam0.txt", 'r', function(err, data) // opening spam0
{
if (err) {
console.log("error");
} else {
//write spam0 data tp input.txt
file = fs.writeFile('input.txt', data, {flag:"w+",encoding:"utf8"} ,function(err, data)
{
if (err) {
throw err;
}
});
}
});
我得到的错误是:
fs.js:75
throw new TypeError('"options" must be a string or an object, got ' +
^
TypeError: "options" must be a string or an object, got number instead.
at getOptions (fs.js:75:11)
at Object.fs.writeFile (fs.js:1269:13)
at C:\Users\akash\Desktop\riidl\node.trail.js:12:14
at FSReqWrap.oncomplete (fs.js:135:15)
换句话说,您想将内容从一个文件复制到另一个文件,对吗?从源文件创建读取流并将其通过管道传输到目标文件的写入流会容易得多。
const fs = require('fs');
const origin = fs.createReadStream('./spam0.txt', {flags: 'r'});
const destination = fs.createWriteStream('input.txt', {flags: 'w+'});
origin.pipe(destination);
当然,如果你想做一些转换,你可以使用Transform 流(参见Jeff Barczewski 的教程)。
const fs = require('fs');
const stream = require('stream');
const origin = fs.createReadStream('./spam0.txt', {
flags: 'r',
// read data as a string not as a buffer
encoding: 'utf8'
});
const transform = new stream.Transform({
// accept data as a strings
writableObjectMode: true,
transform: function removeNewLines(chunk, encoding, callback){
callback(null, chunk.replace(/\n/g, ''));
}
});
const destination = fs.createWriteStream('input.txt', {
flags: 'w+',
// write data as a strings, this is default value
encoding: 'utf8'
});
origin.pipe(transform).pipe(destination);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句