fs(File system,文件系统) 是 node 的一个内置模块,可用于在多种操作系统中(Windows 、macOS 等)对文件进行操作。查阅 node 的官方文档,可以看到 File system 下有非常多的 API:
它们有的用于对文件进行读写操作,有的用于对文件夹操作等,且都提供同步、异步和 Promise 这 3 种操作方式。下面举几个常用的 API 为例,进行说明。
操作文件
读取文件
同步读取
fs.readFileSync()
用于同步 (Sync) 读取文件,直接传入要读取的文件的路径或文件描述符即可:
// 代码块 1.1.1
const fs = require('fs')
// 同步读取
const resSync = fs.readFileSync('./test.txt')
console.log(resSync)
console.log('看看会不会阻塞')
执行结果如下,第 6 行的打印是在第 5 行之后,说明同步操作会阻塞后续代码的运行:
resSync
的结果是 Buffer 对象,本质上是二进制的内容,只是以十六进制来展示。如果想看到文本内容,可以对结果使用 toString()
进行转换:console.log(resSync.toString())
,或者给 fs.readFileSync()
传入第 2 个参数 —— 一个用于指定配置的可选对象,该对象有 2 个属性:
encoding
,默认值为null
,也就是结果显示为 buffer,想显示文本可以改为'utf-8'
(或'utf8'
);flag
,