【nodejs】 文件系统(fs) 之读写文件

时间:2023-01-26 04:35:33
//写入文件

var data = "hello world";
fs.writeFile('c:\\a.txt', data, 'ascii', function(err) {
if (err) {
console.log('写入文件失败');
} else {
console.log('保存成功, 赶紧去看看乱码吧');
}
}); //读取文件 fs.readFile('c:\\a.txt', 'ascii', function(err, data) {
if (err) {
console.log('写入文件失败');
} else {
console.log(data);
}
}); //[注意:默认情况下,数据编码为utf8;mode=438 ;flag=w]

如果有中文呢?

由于Node.js仅支持如下编码:utf8, ucs2, ascii, binary, base64, hex,并不支持中文GBK或GB2312之类的编码,

因此如果要读写GBK或GB2312格式的文件的中文内容,必须要用额外的模块:iconv-lite

1、安装模块:npm install iconv-lite

windows平台不支持npm  先解决这个问题

【nodejs】 文件系统(fs) 之读写文件

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Windows\system32>node -v
v0.12.5

C:\Windows\system32>npm -v
2.11.2

C:\Windows\system32>

ok  成功!

=========================

加载的文件必须是GB2312格式的

var iconv = require('iconv-lite');
var fs = require("fs") ;
fs.readFile("c:\\v.txt",function (error,data){
if(error){throw error} ;
var str = iconv.decode(data, 'GB2312');
console.log(str);
}) ;

utf-8的文件如下

 var fs = require("fs") ;
fs.readFile("bb.txt","utf8",function (error,data){
if(error) throw error ;
console.log(data) ;
}) ;