Node.js—fs文件操作

引入模块

var fs = require("fs");

打开文件

异步打开
fs.open(path[, flags[, mode]], callback)

flag 常用值
‘a’: 打开文件进行追加。 如果文件不存在,则创建该文件。
‘r’: 打开文件进行读取。 如果文件不存在,则会发生异常。
‘w’: 打开文件进行写入。 创建(如果它不存在)或截断(如果它存在)该文件。——原内容全覆盖

在这里插入图片描述

写入文件

fs-同步写入

//获取操作符
var fd = fs.openSync("./hello.txt",'w');
console.log(fd);
//写入内容
fs.writeSync(fd,'今天天气真不错。',2);
//保存并退出
fs.closeSync(fd);

fs.appendFile(path, data[, options], callback)

异步地将数据追加到文件,如果该文件尚不存在,则创建该文件。 data 可以是字符串或 <Buffer>。

关闭文件

fs.close(fd,callback)
fs.closeSync(fd)

异步追加文件

var fs = require("fs");
fs.open("./hello2.txt", 'a', function (err, fd) {
    if (!err) {
        fs.appendFile("./hello2.txt","追加四个。    ",function(err){
            if(!err){
                console.log("写入成功啦〜〜〜");
            }
        })
        fs.close(fd, function (err) {
            if (!err) {
                console.log("文件已关闭〜〜〜");
            }
        });
    } else {
        console.log(err);
    }
});
console.log("程序向下执行");

简单文件写入

fs.writeFile(file, data[, options], callback)
fs.writeFileSync(file, data[, options])

–file 要操作的文件的路径
– data 要写入的数据
– options 选项,可以对写入进行一些设置

  • options 一般都是需要对象作参数
    在这里插入图片描述

– callback 当写入完成以后执行的函数

简单异步追加

var fs = require('fs');

fs.writeFile("hello3.txt","写入+1   ",{flag:'a'},function(err){
   if(!err){
       console.log("写入成功");
   }
})

路径

Win写其它位置

写绝对路径时,记得转义字符
在这里插入图片描述
或者这样也可以
在这里插入图片描述

流式文件写入

// 1.
var fs = require('fs');
// 2.创建一个可写流
// fs.createWriteStream()
var ws = fs.createWriteStream("hello3.txt");
// 3.
ws.write("这是通过可写流写入的内容。");
ws.write("追加+1");
  1. 如果文件存在,会覆盖
  2. 之后写的会追加,只要这个可写流存在

关闭流

// 4.
ws.end();

现在用 ws.close();也可以

监听

监听流open/close事件来监听流的打开和关闭
绑定一个open事件,当该事件发生时,函数触发。

on 和 once 都可以为对象绑定一个事件,on 绑定长期有效的事件,once绑定一次性事件。运行效果一样,once性能要好一些。

on(事件字符串,回调函数)--------可以为对象绑定一个事件

once(事件字符串,回调函数)------可以为对象绑定一个一次性的事件,该事件会在触发一次以后自动失效。

ws.once("open",function(){
console.log("流打开了〜〜〜");
});

ws.once("close",function(){
    console.log("流关闭了〜〜〜");
});

版权声明:本文为weixin_45246970原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。