网站搭建本地环境,网页设计尺寸规格,澄江网站制作,建设网站的语言文章目录 1.读取文件1.1 readFile1.2 readFileSync1.3 fsPromises.readFile#xff1a;promise的写法1.4 fs.createReadStream 1.读取文件
readFile#xff1a;异步读取文件readFileSync#xff1a;同步读取文件fsPromises.readFile#xff1a;promise的写法 需要注意的是… 文章目录 1.读取文件1.1 readFile1.2 readFileSync1.3 fsPromises.readFilepromise的写法1.4 fs.createReadStream 1.读取文件
readFile异步读取文件readFileSync同步读取文件fsPromises.readFilepromise的写法 需要注意的是前三个方法如果不指定 编码(options.encoding) 则数据作为 Buffer 返回否则数据为字符串 1.1 readFile 函数参数 fs.readFile(path[, options], callback)
path string | Buffer | URL | integger 文件名或文件描述符
options Object | string edcoding string | null 默认值 nullflag string 可以填写的值在下面默认值是rsignal AbortSignal 允许中止正在进行的读取文件a: 打开文件进行追加。 如果文件不存在则创建该文件。‘ax’: 类似于 ‘a’ 但如果路径存在则失败。a: 打开文件进行读取和追加。 如果文件不存在则创建该文件。ax: 类似于 ‘a’ 但如果路径存在则失败。as: 以同步模式打开文件进行追加。 如果文件不存在则创建该文件。as: 以同步模式打开文件进行读取和追加。 如果文件不存在则创建该文件。r: 打开文件进行读取。 如果文件不存在则会发生异常。r: 打开文件进行读写。 如果文件不存在则会发生异常。rs: 以同步模式打开文件进行读写。 指示操作系统绕过本地文件系统缓存。(这主要用于在 NFS 挂载上打开文件因为它允许跳过可能过时的本地缓存。 它对 I/O 性能有非常实际的影响因此除非需要否则不建议使用此标志。这不会将 fs.open() 或 fsPromises.open() 变成同步阻塞调用。 如果需要同步操作应该使用类似 fs.openSync() 的东西。)w: 打开文件进行写入。 创建如果它不存在或截断如果它存在该文件。wx: 类似于 ‘w’ 但如果路径存在则失败。w: 打开文件进行读写。 创建如果它不存在或截断如果它存在该文件。wx: 类似于 ‘w’ 但如果路径存在则失败。 const fs require(fs);
// 1、readFile
fs.readFile(./歌词.txt, {}, (err, data) {// 如果文件中是早上好这三个字则会输出下面这一行console.log(data); // Buffer e6 97 a9 e4 b8 8a e5 a5 bd ;
});
console.log(下面代码);如果在第二个参数中加上 encoding: utf-8 则会直接输出 原始内容 fs.readFile(./歌词.txt,{encoding: utf-8,},(err, data) {// 如果文件中是早上好这三个字则会输出下面这一行console.log(data); // Buffer e6 97 a9 e4 b8 8a e5 a5 bd ;// 如果第二个参数加上了 encoding: utf-8, 则会直接输出对应的原始文字}
);1.2 readFileSync 函数参数 fs.readFileSync(path[, options])
path string | Buffer | URL | integger 文件名或文件描述符
options Object | string edcoding string | null 默认值 nullflag string 可以填写的值在下面默认值是rconst file fs.readFileSync(./歌词.txt);
console.log(file);// 输出内容Buffer e6 97 a9 e4 b8 8a e5 a5 bd
const file fs.readFileSync(./歌词.txt, { encoding: utf-8 });
console.log(file); // 早上好
// 如果加上 utf-8 还是会直接输出原始内容
1.3 fsPromises.readFilepromise的写法 函数参数 fsPromises.readFile(path[, options])
path string | Buffer | URL | integger 文件名或文件描述符
options Object | string edcoding string | null 默认值 nullflag string 可以填写的值在下面默认值是rsignal AbortSignal 允许中止正在进行的读取文件代码示例
fsPromises.readFile(./歌词.txt, { encoding: utf-8 }).then((res) {console.log(res, res);},(err) {console.log(err, err);}
);
1.4 fs.createReadStream
函数参数 options 参数的意思
flags: 用于指定文件打开的方式默认为 “r”表示以只读方式打开文件。其他常见的取值包括 “w”写入、“a”追加等encoding: 用于指定读取文件时的编码方式默认为 null表示以原始的 Buffer 形式进行读取。可以设置为诸如 “utf8”、“ascii”、“base64” 等字符串以将读取的数据转换为相应的字符编码。fd: 文件描述符可以用于指定已经打开的文件的文件描述符mode: 用于设置文件的权限默认为 0o666autoClose: 用于指示在流结束时是否自动关闭底层的资源默认为 trueemitClose:用于指定在流关闭时是否触发 close 事件默认值为 truestart: 指定从文件中读取的起始位置的偏移量end: 指定从文件中读取的结束位置的偏移量highWaterMark: 用于设置缓冲区大小表示每次从底层资源读取的最大字节数默认 64* 1024
代码示例 可以设置 highWaterMark 默认值是64*1024KB默认单位是 字节 上面的代码就是 每次读取 400 字节 highWaterMark 是 Node.js 中可读流和可写流的一个选项用于设置缓冲区大小。对于可读流来说它表示每次从底层资源读取数据时的最大字节数默认值为 64KB。如果正在读取的数据超过了 highWaterMark 的大小则会暂停读取直到当前缓冲区中的数据被消费完毕以保证内存不会被过度占用