nodejs 读取文件

一、读取文件

文档参考地址

1. 常用读取文件方式

const fs = require('fs')
const path = require('path')
let file = path.resolve(__dirname, './file.txt')
// 异步读取文件内容
fs.readFile(file, { encoding: 'utf8' }, (err, data) => {
    if (err) throw err
    console.log('读取的文件内容:', data)
})

2. 语法说明

/*
 * 异步读取文件内容,(若不存在文件,则发生异常)
 * @param file {string | Buffer | URL | integer} 文件名或文件描述符
 * @param options {Object | string}
 *          encoding {string | null}, 编码方式,默认值是 null
 *          flag {string}, 读取方式,默认值是 'r',打开文件用于读取。 
 *                         如果文件不存在,则会发生异常
 * @param callback {Function} 回调函数
 *          err {Error} 读取文件内容时抛出的错误
 *          data {string | Buffer} 读取到的文件内容
 */
function readFile(file[, options], callback) {}

备注:

  1. 若没有指定字符编码,将返回原始的 Buffer

  2. options 是字符串,则该值需是一个 字符串编码类型

fs.readFile(file, 'utf8', (err, data) => {})
  1. file 是目录,在 Linux、MacOSWindows 上会报错

二、同步读取文件

功能和参数与该接口的 异步 API 类似,只是参数少了 回调函数

const fs = require('fs')
fs.readFileSync(file[, options])

三、不同写入方式

options 里面的 flag 参数值表示不同的 文件系统标志

这里表现为:不同的读取方式

常用的几种方式

  1. 'a': 打开文件用于追加。如果文件不存在,则创建该文件
  2. 'a+': 打开文件用于读取和追加。如果文件不存在,则创建该文件
  3. 'as': 打开文件用于追加(在同步模式中)。如果文件不存在,则创建改文件
  4. 'r': 打开文件用于读取。如果文件不存在,则会发生异常
  5. 'r+': 打开文件用于读取和写入。如果文件不存在,则会发生异常
  6. 'w': 打开文件用于写入。如果文件不存在则创建文件,若存在则截断文件
  7. 'w+': 打开文件用于读取和写入。如果文件不存在则创建文件,若存在则截断文件

可以点击查看更多 文件系统标志

四、其他类似 Api

点击查看更多

API 详情

fs.read(fd, buffer, offset, length, position, callback)
fs.read(fd[, options], callback)
fs.readSync(fd, buffer, offset, length, position)
fs.readSync(fd, buffer[, options])