美文网首页
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