美文网首页
node笔记02

node笔记02

作者: 8d2855a6c5d0 | 来源:发表于2017-07-14 13:49 被阅读0次

fs

fs模块对文件的几乎所有操作都有同步和异步两种形式

  • 例如:readFile() 和 readFileSync()
  • 区别:
  • 同步调用会阻塞代码的执行,异步则不会
  • 异步调用会将读取任务下达到任务队列,直到任务执行完成才会回调
  • 异常处理方面,同步必须使用 try catch 方式,异步可以通过回调函数的第一个参数

缓冲区buffer

  • 缓冲区就是内存中操作数据的容器
  • 只是数据容器而已
  • 通过缓冲区可以很方便的操作二进制数据
  • 而且在大文件操作时必须有缓冲区
为什么要有缓冲区
  • JS 是比较擅长处理字符串,但是早期的应用场景主要用于处理 HTML 文档,不会-
  • 有太大篇幅的数据处理,也不会接触到二进制的数据。
  • 而在 Node 中操作数据、网络通信是没办法完全以字符串的方式操作的,简单来说
  • 所以在 Node 中引入了一个二进制的缓冲区的实现:Buffer
创建缓冲区

创建长度为4个字节的缓冲区
var buffer = new Buffer(4);
通过指定数组内容的方式创建
var buffer = new Buffer([00,01]);
通过指定编码的方式创建
var buffer = new Buffer('hello', 'utf8');

Node 默认支持的编码
Buffers 和 JavaScript 字符串对象之间转换时需要一个明确的编码方法。下面是字符串的不同编码。

  • 'ascii' - 7位的 ASCII 数据。这种编码方式非常快,它会移除最高位内容。
  • 'utf8' - 多字节编码 Unicode 字符。大部分网页和文档使用这类编码方式。
  • 'utf16le' - 2个或4个字节, Little Endian (LE) 编码 Unicode 字符。编码范围 (U+10000 到 U+10FFFF) 。
  • 'ucs2' - 'utf16le'的子集。
  • 'base64' - Base64 字符编码。
  • 'binary' - 仅使用每个字符的头8位将原始的二进制信息进行编码。在需使用 Buffer 的情况下,应该尽量避免使用这个已经过时的编码方式。这个编码方式将会在未来某个版本中弃用。
  • 'hex' - 每个字节都采用 2 进制编码。

文件流

么是流?

  • 文件流、网络流

  • 任何数据的最根本

  • 表现形式都是二进制的

  • 文件流就是以面向对象的概念对文件数据进行的抽象

  • 文件流定义了一些对文件数据的操作方式

相关文章

网友评论

      本文标题:node笔记02

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