用node.js读写文件
node.js没有二进制数据类型,却提供了类似字节数组的“流“数据类型,着一种数据类型在文件系统模块中频频出现
node.js打开文件
fs = require(‘fs‘);
console.log(‘准备打开文件‘);
fs.open(‘/etc/hosts‘,‘r+‘,function (err,fd) {
if (err)
{
console.log(‘damn~打开错误‘);
}
console.log(‘可以打开‘);
fs.close(fd,function (err) {
if (err)
{
console.error(err)
}
console.log(‘顺利关闭‘)
});
});把文件内容读入缓冲区,并把缓冲区内容解读为utf8模式,(16进制也可以哦)
fs = require(‘fs‘);
fs.open(‘/etc/hosts‘,‘r+‘,function (err,fd) {
var mybuffer = Buffer.alloc(1024);
offset=0;
len = mybuffer.length;
fileposition = null;
fs.read(fd,mybuffer,offset,len,fileposition,function(err,readByte){
console.log("可读取数据数量"+readByte);
var wuwa=mybuffer.slice(0,readByte);
console.log("缓冲区内容解读前:",wuwa);
console.log("缓冲区内容解读后:",wuwa.toString(‘utf8‘));
});
});输出结果:
可读取数据数量196
缓冲区内容解读前: <Buffer 31 32 37 2e 30 2e 30 2e 31 20 20 20 6c 6f 63 61 6c 68 6f 73 74 20 6c 6f 63 61 6c 68 6f 73 74 2e 6c 6f 63 61 6c 64 6f 6d 61 69 6e 20 6c 6f 63 61 6c 68 ... 146 more bytes>
缓冲区内容解读后: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 coldspring.net taizhouwu.net mydb.net
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6异步读取(data仍为缓冲区)
fs = require(‘fs‘); fs.readFile(‘/etc/hosts‘,function (err,data) { if(err) { console.error(err); } console.log(data.toString(‘utf8‘));#仍旧是buffer类型,需要转换为utf8类型 });
输出结果:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!