如何使用NodeJS修改文件并保存到新文件?

问题描述:

我有一个名为source.txt如何使用NodeJS修改文件并保存到新文件?

我想使用的NodeJS脚本做一些修改txt文件的内容,并保存为一个新文件的纯文本文件,说output.txt

我怎么做?

我期待一个命令行实现,喜欢的东西:

$node modify.js source.txt output.txt

谢谢!

+0

http://nodejs.org/api/fs.html – brandonscript

+0

@ r3mus谢谢你,成功了!还有一个问题:'fs.open()'有一个'回调函数'。在API Doc上它说'回调得到两个参数(err,fd)。'是否有任何可能的'err'和'fd'值的参考? –

+0

没有参考,我知道,但是你可以尝试/赶上犯错,你应该没问题。 – brandonscript

使用Node.js构建的fs()函数来读取和写入文件到本地文件系统。

基本读例如:

fs.readFile('source.txt', function (err, data) { 
    if (err) throw err; 
    console.log(data); 
}); 

基本写例如:

fs.writeFile('output.txt', 'Hello Node', function (err) { 
    if (err) throw err; 
    console.log('It\'s saved!'); 
}); 

注:确保您的节点实例(以及它被下运行的帐户)具有适当的权限读取和写入源/目的地。

+0

非常感谢!然而,'console.log(data)'的输出是这样的:'',意思是什么?我如何获得rawdata?如果内容有一些特殊字符(如中文,日文字符)会怎么样? –

+0

只需附加'.toString()'将流转换为文本;) – brandonscript

同步风格:

// save as: uppercase.js 

var fs = require('fs'); 

var input = process.argv[2]; 
var output = process.argv[3]; 

var content = fs.readFileSync(input, 'utf8'); 
content = content.toUpperCase();  
fs.writeFileSync(output, content); 

运行:

$node uppercase source.txt output.txt 
+0

相当整洁!谢谢! –