美文网首页
NodeJS学习笔记——fs模块

NodeJS学习笔记——fs模块

作者: JacobMa1996 | 来源:发表于2017-07-15 16:05 被阅读0次

    fs模块即文件系统,所有方法都有同步或异步形式,这里暂时只介绍异步方式;

    readFile()

    fs.readFile(path[, options], callback)
    readFile方法的第一个参数是文件的路径,可以是绝对路径,也可以是相对路径。注意,如果是相对路径,是相对于当前进程所在的路径(process.cwd()),而不是相对于当前脚本所在的路径。
    第二个参数指定字符编码,若未指定,返回原始buffer;

    var fs = require('fs');
    
    //readFile()
    fs.readFile('../resource/Benz.jpg', function (err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log(data.length + 'bytes');//255078bytes
        }
    });
    
    fs.readFile('../resource/text.txt', 'utf-8', function (err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log(data);//this is a test;
        }
    });
    

    writeFile()

    fs.writeFile(file, data[, options], callback)
    异步地写入数据到文件,如果文件已经存在,则替代文件。 data 可以是一个字符串或一个 buffer。
    如果 data 是一个 buffer,则忽略 encoding 选项。它默认为 'utf8'。

    //writeFile()
    fs.writeFile('../resource/message.txt', 'this is another test', function (err) {
        if(err) throw err;
        console.log('it\'s saved');//it's saved
    });
    

    mkdir()

    fs.mkdir(path[, mode], callback)
    新建目录,mode为权限值,默认为0o777(?)

    //mkdir()
    fs.mkdir('../resource/dir',function(err){
        if(err) throw err;
    });//在指定路径下创建了新目录dir
    

    readdir()

    fs.readdir(path[, options], callback)
    读取一个目录的内容。 回调有两个参数 (err, files),其中 files 是目录中不包括 '.' 和 '..' 的文件名的数组。

    //readdir()
    fs.readdir('../resource',function(err,files){
       if(err) {
           console.log(err);
           return;
       }
    
       console.log(files);//[ 'Benz.jpg', 'dir', 'message.txt', 'text.txt' ]
    });
    

    stat()

    fs.stat(path, callback)
    回调有两个参数 (err, stats)其中 stats是一个 fs.Stats对象。

    //fs.stat()
    fs.stat('../resource',function(err,stats) {
        if(err) throw err;
    
        console.log(stats);//返回一个Stats对象
        console.log(stats.isFile());//false
        console.log(stats.isDirectory());//true
        console.log(stats.isBlockDevice());//false
        console.log(stats.isCharacterDevice());//false
        console.log(stats.isFIFO());//false
        console.log(stats.isSocket());//false
    });
    
    目录结构.png

    相关文章

      网友评论

          本文标题:NodeJS学习笔记——fs模块

          本文链接:https://www.haomeiwen.com/subject/oszahxtx.html