Node.js的缓存类Buffer-Buffer类的创建、类方法
Javascript 语言内部使用 Unicode 编码,其对 Unicode 编码支持较好,但确难以处理二进制数据。在网络编程中,如:处理 TCP 流和 fs 文件系统时,需要经常操作字节流。Node.js 提供了Buffer
类,该类可以方便的操作、创建、以及处理字节流。
Javascript 语言内部使用 Unicode 编码,其对 Unicode 编码支持较好,但确难以处理二进制数据。在网络编程中,如:处理 TCP 流和 fs 文件系统时,需要经常操作字节流。Node.js 提供了Buffer
类,该类可以方便的操作、创建、以及处理字节流。
JavaScript中有全局对象,实际上,语言环境中所有可访问的对象都可以认为是其全局对象,如:Number
、String
、undefined
等。在浏览器环境中,全局对象是Window
对象,被写到Window
对象中的对象都可以全局访问,如:Document
、Location
就是Window
对象的子对象,可以全局访问。在Node.js中,有一个全局命名空间对象global
,process
、console
、Buffer
等都是可以global
的子对象,所以可以不需要require
引用而直接使用。global
对象是可读写的,你可以将自己常用的对象或模块等加入到到global
,然后就可以全局访问。
可写流(Writable stream)
接口是对正在写入数据目标的抽象,也可以认为,数据要写入一个 Writable
流。可写流
中有些事件是由可读流触发的,如:当可读流
将数据导向可写流
时,会触发可写流
中的'pipe'
事件。
可读流(Readable stream)
接口是对你正在读取数据来源的抽象,换言之,数据出自一个 Readable流
。在stream
模块中,可读流
有两种模式:流动模式(flowing mode) 和 暂停模式(paused mode)。流默认处于暂停模式。流动模式时,数据由底层系统读出,并尽可能快地提供给应用程序;当处于暂停模式时,必须显示地调用stream.read()
方法来读取若干数据块。
流(stream
)是一个抽象接口,在Node.js中,流又是EventEmitter的一个实例,所以它有 'data'
、 'end'
等事件。stream
模块同时又是一个基类,在Node里被不同的对象所实现,如:http.ServerResponse就是一个流对象。
当需要对目录进行操作时,可以文件系统模块fs
中目录操作相关方法,这些方法有:fs.mkdir()
、fs.readdir()
、fs.rmdir()
。
fs
模块提供了创建文件可读流与创建文件可写读的方法:fs.createReadStream()和fs. createWriteStream(),这两个方法分别分返回一个Readable Stream
对象和Writable Stream
对象。通过这两个对象,我们可以基于流的文件处理,在读写大文件及基于流的转接、暂停、读取等操作方面有很大的作用。
昨天介绍了Node.js的文件系统模块fs
中两种读取文件的方法。不只读取文件,写入文件同样也有两种方法:fs.write()
和fs.writeFile()
。
Node.js的文件系统模块fs
中,提供了两种读取文件的方法:fs.read()
和fs.readFile()
。两者之间有什么区别呢?本文将对这两个方法做详细解释。