NodeJS File System-文件系统模块

2018-06-30  本文已影响3人  走停2015_iOS开发

该模块是核心模块,需要使用require导入后使用

 fs模块
 fs.open(path,flag,[mode],callback) 异步打开一个文件
 path:要打开文件的路径
 flags:打开文件的方式 读/写
 mode:设置文件的模式 读/写/执行 4/2/1
 callback:回调
 err:文件打开失败的错误保存在err里面,如果失败err为null
 fd:被打开文件的标识,和定时器

var fs = require('fs');
fs.open('1.js','r',function(err,fd)
    console.log(err);
    console.log(fd);
});
-------------打印---------------------------------------------------
{ Error: ENOENT: no such file or directory,
    // open '2.js' errno: -2, code: 'ENOENT', syscall: 'open', path: '2.js' }

fs.open('1.js','r',function(err,fd){
    console.log(err);
    console.log(fd);
});
console.log('ok');
-------------打印---------------------------------------------------
11
ok
 fs.openSync(path,flag,[mode]) 同步打开一个文件
var fs = require('fs');
var fd = fs.openSync('1.js','r');
console.log(fd);
console.log('ok');
-------------打印---------------------------------------------------
11
ok
var fs = require('fs');
fs.open('1.js','r',function(err,fd){

    if(!err)
    {
        //读取文件
        //fs.read(fd,buffer,offset,length,position,callback)
        //fs:通过open打开文件返回的编号
        //buffer:打开文件的数据存放在这里
        //offset:新的内容添加到buffer中的起始位置
        //length:添加到buffer的内容的长度
        //position:读取文件中的起始位置
        //callback:回调
        //      err:
        //      len:
        //      newbf:
        var bf1 = new Buffer('123456789');
        console.log(bf1);
        fs.read(fd,bf1,0,4,null,function(err,len,newbf){
            console.log(bf1);
            console.log(newbf);
            console.log(len);
        });
    }
});
-------------打印---------------------------------------------------
//<Buffer 31 32 33 34 35 36 37 38 39>
//<Buffer 2f 2a 2a 0a 35 36 37 38 39>
//<Buffer 2f 2a 2a 0a 35 36 37 38 39>
//4
var fs = require('fs');
fs.open('2.js','r+',function(err,fd){

    // fs.write(fd,buffer,offset,length,position,callback)
    //fs.writeSync(fd,buffer,offset,length,position,callback)
    //fs:通过open打开文件返回的编号
    //buffer:要写入的数据
    //offset:buffer中的写入的数据的起始位置
    //length:要写入的buffer的内容的长度
    //position:读取文件中的起始位置
    //callback:回调
    //      err:
    //      len:
    //      newbf:
    if(!err) {
        var bf = new Buffer('1234');

        fs.write(fd, bf, 0, 4, 0, function () {

            console.log(arguments);
            //{ '0': null, '1': 4, '2': <Buffer 31 32 33 34> }
        });
    }
})
var fs = require('fs');
fs.open('2.js','r+',function(err,fd){

    // fs.write(fd,position,[encoding])
    //fs:通过open打开文件返回的编号
   // encoding:编码
    //position:读取文件中的起始位置

    if(!err) {     
        fs.write(fd,'1234', 0,'utf-8',function(){

        } );
}
}
F41E8173-66A8-4755-B39D-384A676CF3C5.png A40F4A4D-AE26-4F67-B48C-9DD8C67BA0AC.png
fs.close(fd,function(){
               
   });
  1. writeFile
  2. writeFileSync
var fs = require('fs');
var fileName = "3.js";
//向一个文件中写入数据,如果该文件不存在就创建,如果存在,新的内容会覆盖原有的内容
fs.writeFile(fileName,'miaov',function()
{
    console.log(arguments);
});
//appendFile:如果该文件不存在就创建
fs.appendFile(fileName,'leo',function(){
    console.log(arguments);
});

例子如下

var fs = require('fs');
var fileName = "3.js";
fs.exists(fileName,function(isExists){
    if(!isExists){
        fs.writeFile(fileName,'miaov',function(err){
            if(err){
                console.log('出错了');
            }else
            {
                console.log('创建新文件成功,并且写入了内容');
            }
        });

    }else
    {
        fs.appendFile(fileName,'-cheshi-',function(err){
            if(err)
            {
                console.log('新的内容追加失败');
            }else
            {
                console.log('新的内容追加成功');
            }

        });
    }
});
var fs = require('fs');
fs.readFile('2.js',function(err,data){
   console.log(arguments);
    console.log(data.toString());
});
var fs = require('fs');
fs.unlink('2.js',function(err){

});
var fs = require('fs');
fs.rename('3.js','2.new.js',function()
{
    console.log(arguments);
});

var fs = require('fs');
fs.stat('2.new.js',function()
{
    console.log(arguments);
});
-------------打印---------------------------------------------------
{ '0': null,
    '1':
    Stats {
    dev: 16777221,
        mode: 33188,
        nlink: 1,
        uid: 501,
        gid: 20,
        rdev: 0,
        blksize: 4096,
        ino: 49454047,
        size: 27,
        blocks: 8,
        atimeMs: 1530340151000,
        mtimeMs: 1530333980000,
        ctimeMs: 1530333980000,
        birthtimeMs: 1530333921000,
        atime: 2018-06-30T06:29:11.000Z,
        mtime: 2018-06-30T04:46:20.000Z,
        ctime: 2018-06-30T04:46:20.000Z,
        birthtime: 2018-06-30T04:45:21.000Z } }
//fs.mkdir(path,[mode],callback)
var fs = require('fs');
fs.mkdir('./1',function(err){
    console.log(arguments);
});
fs.rmdir('./1',function(err){
});
fs.readdir('../Lib',function(err,filelist){
    console.log(err);
    //console.log(filelist);
    filelist.forEach(function(f){
       fs.stat(f,function(err,info){
           console.log(arguments);
           if(info.mode == 16822)
           {
               console.log('文件夹');
           }else if(info.model =33206)
           {
               console.log('文件');
           }
        });
    });
});
上一篇下一篇

猜你喜欢

热点阅读