Node.js学习--Buffer类和fs模块

buffer类,专门存放二进制数据的缓冲区
1.创建Buffer对象
    Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小的 Buffer 实例,如果没有设置 fill,则默认填满 0
    Buffer.allocUnsafe(size): 返回一个指定大小的 Buffer 实例,但是它不会被初始化,所以它可能包含敏感的数据
    Buffer.allocUnsafeSlow(size)
    Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)
    Buffer.from(arrayBuffer[, byteOffset[, length]]): 返回一个新建的与给定的 ArrayBuffer 共享同一内存的 Buffer。
    Buffer.from(buffer): 复制传入的 Buffer 实例的数据,并返回一个新的 Buffer 实例
    Buffer.from(string[, encoding]): 返回一个被 string 的值初始化的新的 Buffer 实例
2.写入缓冲区
    buf.write(string[, offset[, length]][, encoding])
3.读取缓冲区
    buf.toString([encoding[, start[, end]]])

//创建缓冲区
let bf = Buffer.alloc(10);

//写入缓冲区
bf.write("abcdefg");

//读取缓冲区
console.log(bf.toString());

fs模块 (file system)

同步打开文件
fs.openSync(path[, flags[, mode]])
同步写入文件
fs.writeSync(fd, buffer[, offset[, length[, position]]])
同步保存关闭文件
fs.closeSync(fd)

//引入fs模块
let fs = require("fs");

//打开文件并获取文件标识
let fd = fs.openSync("test.txt", "w");

//通过文件标识,写入文件
fs.writeSync(fd, "this is a test!");

//通过文件标识,关闭
fs.closeSync(fd);

异步打开文件
fs.open(path[, flags[, mode]], callback)
异步写入文件
fs.write(fd, buffer[, offset[, length[, position]]], callback)
异步保存关闭文件
fs.close(fd, callback)

//引入fs模块
let fs = require("fs");

//打开文件并获取文件标识
fs.open("test.txt", "w", function (err, fd) {
  //通过文件标识,写入文件
  fs.write(fd, "this is a test!", function (err) {
    //通过文件标识,关闭
    fs.close(fd, function (err) {
      if (!err) {
        console.log("写入成功!")
      }
      else {
        console.log(err)
      }
    })
  })
});

简单文件写入--异步
fs.writeFile(file, data[, options], callback)

//引入fs模块
let fs = require("fs");

//异步简单文件写入
fs.writeFile("test.txt", "this is a simple test!!", function (err) {
  if (!err) {
    console.log("写入成功!")
  }
  else {
    console.log(err);
  }
});

简单文件写入--同步

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

//引入fs模块
let fs = require("fs");

//异步简单文件写入
fs.writeFileSync("test.txt", "this is a simple test!!");
console.log("写入成功!")

流文件写入
1.创建写入流对象
2.可以注册open/close事件
3.关闭写入流对象

//引入fs模块
let fs = require("fs");

//流文件写入
let ws = fs.createWriteStream("text.txt");
//文件打开时触发
ws.on("open", function () {
  console.log("file open!");
});
//文件关闭时触发
ws.on("close", function () {
  console.log("file close!")
});

ws.write("this is a test!");
ws.write("this is a test!");
ws.write("this is a test!");
//关闭流
ws.end();

简单文件读取
fs.readFile(path[, options], callback)

//引入fs模块
let fs = require("fs");

//简单文件读取
fs.readFile("text.txt", function (err, data) {
  console.log(data.toString());
})

流文件读取

//引入fs模块
let fs = require("fs");

//流文件读取
let rs = fs.createReadStream("text.txt");
rs.on("data", function (data) {
  console.log(data.toString())
})

//可以通过pipe直接输出到可写流
// rs.pipe(WritableStream)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值