node.js学习笔记

Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。

Buffer 提供了以下 API 来创建 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 实例

写入 Node 缓冲区的语法如下所示:

buf.write(string[, offset[, length]][, encoding])


读取 Node 缓冲区数据的语法如下所示:

buf.toString([encoding[, start[, end]]])

将 Node Buffer 转换为 JSON 对象的函数语法格式如下:

buf.toJSON()
当字符串化一个 Buffer 实例时,JSON.stringify() 会隐式地调用该 toJSON()。

Node Buffer 比较的函数语法如下所示, 该方法在 Node.js v0.12.2 版本引入:

buf.compare(otherBuffer);

Node 缓冲区拷贝语法如下所示:

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

Node 缓冲区裁剪语法如下所示:

buf.slice([start[, end]])

文件追加内容:
var fs = require('fs');
var read = fs.createReadStream('../data/input.txt');
//设置第二个参数append
var write = fs.createWriteStream('../data/out.txt', { 'flags': 'a' });
//管道流读写操作
read.pipe(write);
console.log('执行完毕');
 
{ 'flags': 'a' }
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
 待续...
原文地址:https://www.cnblogs.com/qiufang/p/8572764.html