美文网首页
node的fs常用模块和stream模块

node的fs常用模块和stream模块

作者: 悦者生存 | 来源:发表于2018-08-19 22:32 被阅读42次

    fs常用模块

    1.获取文件信息

    fs.stat(path, callback)
    

    实例

    var fs = require("fs");
    
    console.log("准备打开文件!");
    fs.stat('input.txt', function (err, stats) {
       if (err) {
           return console.error(err);
       }
       console.log(stats);
       console.log("读取文件信息成功!");
       
       // 检测文件类型
       console.log("是否为文件(isFile) ? " + stats.isFile());
       console.log("是否为目录(isDirectory) ? " + stats.isDirectory());    
    });
    

    2.读取文件

    readFile

    实例

    fs.readFile('input.txt', function (err, data) {
       if (err) {
           return console.error(err);
       }
       console.log("异步读取: " + data.toString());
    });
    

    3.写入文件

    fs.writeFile(file, data[, options], callback)
    
    fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容',  function(err) {
       if (err) {
           return console.error(err);
       }
       console.log("数据写入成功!");
       console.log("--------我是分割线-------------")
       console.log("读取写入的数据!");
       fs.readFile('input.txt', function (err, data) {
          if (err) {
             return console.error(err);
          }
          console.log("异步读取文件数据: " + data.toString());
       });
    });
    

    4.删除文件

    fs.unlink(path, callback)
    
    var fs = require("fs");
    
    console.log("准备删除文件!");
    fs.unlink('input.txt', function(err) {
       if (err) {
           return console.error(err);
       }
       console.log("文件删除成功!");
    });
    

    5.创建目录

    fs.mkdir(path[, mode], callback)
    
    var fs = require("fs");
    
    console.log("创建目录 /tmp/test/");
    fs.mkdir("/tmp/test/",function(err){
       if (err) {
           return console.error(err);
       }
       console.log("目录创建成功。");
    });
    

    stream模块

    1.从流中读取数据

    var fs = require("fs");
    var data = '';
    
    // 创建可读流
    var readerStream = fs.createReadStream('input.txt');
    
    // 设置编码为 utf8。
    readerStream.setEncoding('UTF8');
    
    // 处理流事件 --> data, end, and error
    readerStream.on('data', function(chunk) {
       data += chunk;
    });
    
    readerStream.on('end',function(){
       console.log(data);
    });
    
    readerStream.on('error', function(err){
       console.log(err.stack);
    });
    
    console.log("程序执行完毕");
    

    2.写入流

    var fs = require("fs");
    var data = '菜鸟教程官网地址:www.runoob.com';
    
    // 创建一个可以写入的流,写入到文件 output.txt 中
    var writerStream = fs.createWriteStream('output.txt');
    
    // 使用 utf8 编码写入数据
    writerStream.write(data,'UTF8');
    
    // 标记文件末尾
    writerStream.end();
    
    // 处理流事件 --> data, end, and error
    writerStream.on('finish', function() {
        console.log("写入完成。");
    });
    
    writerStream.on('error', function(err){
       console.log(err.stack);
    });
    
    console.log("程序执行完毕");
    

    3.管道流

    var fs = require("fs");
    
    // 创建一个可读流
    var readerStream = fs.createReadStream('input.txt');
    
    // 创建一个可写流
    var writerStream = fs.createWriteStream('output.txt');
    
    // 管道读写操作
    // 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
    readerStream.pipe(writerStream);
    
    console.log("程序执行完毕");
    

    相关文章

      网友评论

          本文标题:node的fs常用模块和stream模块

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