标签:数据 存在 ram 回调函数 lse 参考 write chap must
一:文件写入:
(1):文件操作需要加载fs核心模块。
/* 文件写入:分为同步和异步写入。 1:同步写入函数:fs.writeFileSync(file,data,options) ; 2:异步写入函数:fs.writeFile(file,data,options,callback) ; 3:参数解释:options和callback。 options参数值为一个对象,包含三个属性{encoding,mode,flag},默认为utf-8,mode:0x666,flag:‘w‘ callback:为回调函数。 flag为进行写入时模式选择。有w,r+(打开文件进行读取和写入,如果文件不存在则发生异常.) */ /*同步写入*/ var f = require(‘fs‘); //加载fs核心模块. function test() { console.log(‘开始写入.........‘); try { //这里mode没有写表示采用默认值。 var my_option = {encoding:‘utf-8‘ ,flag:‘a‘};//a:表示追加,如不存在则创建, /*w:如存在则截断,在写入,截断是指从 文件内容中某个位置开始写,如果从零开始写则原来文件中的内容将都被删除*/ var data = ‘I think that we must respect of myself‘; f.writeFileSync(‘D:/Program Files/nodejs/chapter/a.txt‘,data,my_option); console.log(‘写入成功‘); } catch(e) { console.log(‘写入失败‘+e); } } test();
输出:
D:\Program Files\nodejs\chapter>node 文件操作.js
开始写入.........
写入成功
D:\Program Files\nodejs\chapter>
(2):异步文件写入:
/*异步文件写入*/ var f = require(‘fs‘); var data = ‘You often to do the error thing‘; console.log(1); console.log(‘开始写入.........‘); f.writeFile(‘a.txt‘,data,function(error){ if(error) { console.log(‘i am sorry‘+error); } else { console.log(‘写入成功‘); } console.log(2); }); console.log(3); //打印这些数字是为了测试异步函数执行的顺序.
输出:
D:\Program Files\nodejs\chapter>node 异步文件写入.js
1
开始写入.........
3
写入成功
2
D:\Program Files\nodejs\chapter>
(3):向文件内追加内容
1:在options为默认选择时,在对指定的文件名进行操作时,如果文件存在则会将其从零进行截断,也可以认为是覆盖。
所以使用追加的方式就能解决该问题:
2:异步追加函数:appendFile(file,data,options,callback);
3:代码省了;
二:文件读取:由于同步文件操作使用的不多,便..................................。
(1):代码:
/* 1:f.readFile(file,options,callback); 2:callback:读取的callback和写入的callback不同, 读取到的数据将由回调函数的第二个参数接受. */ /*这里回调函数定义放在外面*/ var f = require(‘fs‘); f.readFile(‘D:/Program Files/nodejs/chapter/a.txt‘,function(err,data) { if(err) { console.log(‘文件读取失败‘+err); } else { console.log(‘data‘); } console.log(data.toString()); });
输出:
D:\Program Files\nodejs\chapter>node 异步文件读取.js
data
You often to do the error thing
D:\Program Files\nodejs\chapter>
其他写法的输出,怎么解释
/* 1:f.readFile(file,options,callback); 2:callback:读取的callback和写入的callback不同, 读取到的数据将由回调函数的第二个参数接受. */ /*这里回调函数定义放在外面*/ var f = require(‘fs‘); f.readFile(‘D:/Program Files/nodejs/chapter/a.txt‘,function(err,data) { if(err) { return console.log(‘文件读取失败‘+err); } else { return console.log(‘读取成功‘); }
console.log(1); //这个部分没有执行. console.log(data.toString()); });
输出: //这是因为异步的原因,可以参考异步文件写入.
D:\Program Files\nodejs\chapter>node 异步文件读取.js
读取成功
/* 1:f.readFile(file,options,callback); 2:callback:读取的callback和写入的callback不同, 读取到的数据将由回调函数的第二个参数接受. */ /*这里回调函数定义放在外面*/ var f = require(‘fs‘); console.log(1); f.readFile(‘D:/Program Files/nodejs/chapter/a.txt‘,function(err,data) { if(err) { console.log(‘文件读取失败‘+err); } else { console.log(2); console.log(‘写入成功‘); } console.log(3); console.log(data.toString()); });
输出:
D:\Program Files\nodejs\chapter>node 异步文件读取.js
1
2
写入成功
3
You often to do the error thing
D:\Program Files\nodejs\chapter>
标签:数据 存在 ram 回调函数 lse 参考 write chap must
原文地址:https://www.cnblogs.com/1314bjwg/p/12452033.html