node.js的文件操作

Posted calm寻路人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js的文件操作相关的知识,希望对你有一定的参考价值。

一:文件写入:

  (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 odejschapter>node 文件操作.js
开始写入.........
写入成功

D:Program Files odejschapter>

 

(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 odejschapter>node 异步文件写入.js
1
开始写入.........
3
写入成功
2

D:Program Files odejschapter>

 

(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 odejschapter>node 异步文件读取.js
data
You often to do the error thing


D:Program Files odejschapter>

 

其他写法的输出,怎么解释

/*
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 odejschapter>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 odejschapter>node 异步文件读取.js
1
2
写入成功
3
You often to do the error thing

D:Program Files odejschapter>

 

 

  

以上是关于node.js的文件操作的主要内容,如果未能解决你的问题,请参考以下文章

澄清 node.js + promises 片段

node.js零基础详细教程:node.js操作mongodb,及操作方法的封装

在 Backand 如何从 node.js 操作上传文件?

Node.js 文件操作

Node的文件系统及Buffer概述

node.js零基础详细教程:node.js操作mongodb,及操作方法的封装