nodejs——文件系统

文件系统里方法有很多但是主要常用的无外乎 创建,打开,读取,添加,删除等方法。

1.引入fs模块。

var fs = require('fs');

2.打开。

fs.open(path, flags, [mode], callback)

path:要打开的文件路径。

flags:打开文件的方式,读/写。

mode:可选项。 设置文件的模式  读/写/执行  4/2/1

callback: 回调

  回调接受两个参数:1. err:文件打开失败的错误保存在err里面,如果成功err为null。2. fd:被打开文件的标识。

fs.open('1.txt', 'r', function(err, fd){
   console.log(err);
   console.log(fd);
   
   if(err){
      console.log("文件打开失败");    
    } else{
      console.log("文件打开成功"); 
    }
   
})

当你第一次打开文件成功时,fd实例中返回数字3,就像你平时使用定时器时最后都会返回一个标识符给我们,然后我们根据标识符来操作具体哪一个定时器。当你在下面再打开一次同一个文件,标识符就变成4,累加的状态。

 

nodejs问我们提供文件系统模块的方法时,有很多都是有不同版本的,即同步异步。

异步操作:

fs.open('1.txt', 'r', function(err, fd){
   console.log(err);
   console.log(fd);
   
   if(err){
      console.log("文件打开失败");    
    } else{
      console.log("文件打开成功"); 
    }
   
})

console.log("OK");

此时先输出的是OK。

同步操作:

var fd = fs.openSync(path, flags, [mode]);

console.log(fd);

fd是它的返回值,如果我们想后续操作的话直接在后面写就好了,同步会阻塞后续代码的执行。

3.读取。

fs.open('1.txt', 'r', function(err, fd){
   console.log(err);
   console.log(fd);
   
   if(err){
      console.log("文件打开失败");    
    } else{

      fs.read(fd, buffer, offset, length, position, callback)
     
    }
   
})

fd: 通过open方法成功打开一个文件返回的编号。

buffer:buffer对象

offset:新的内容添加到buffer中的起始位置

length:添加到buffer中内容的长度

position:读取文件中的起始位置

callback:回调

  err:

  len:buffer的长度

  newBf:新的buffer对象

 

假如1.txt文件的内容是  abcd

var bf1 = new Buffer('123456789');

console.log(bf1); // <Buffer 31 32 33 34 35 36 37 38 39>

fs.read(fd, bf1, 0, 4, null, function(err, len, newBf){

  console.log(bf1) // <Buffer 61 62 63 64 35 36 37 38 39>

  console.log(len) // 4

  console.log(newBf) //<Buffer 61 62 63 64 35 36 37 38 39>

})

 

posted @ 2017-05-03 20:19  伍声2016  阅读(164)  评论(0编辑  收藏  举报