Node.js 文件模块之 readFile

fs.readFile(path[, options], callback) 读取文件

  • 第一个参数为文件路径,第二个为可选参数(为一个对象或者字符串),第三个为读取结束的回调函数,该回调函数有两个参数分别为 错误对象数据对象
  • 使用 readFile 去读取一个文本文件(不指定编码),读出来的是一个 16 进制表示的 ASCII 码,如果想得到原始文本,需要使用 data.toString() 或者 指定编码为 utf8
  • If no encoding is specified, then the raw buffer is returned.
  • 读取文件不要读取目录,读取目录会报错
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    const fs = require('fs');
    fs.readFile('test.txt','utf8',(err,data)=>{
    if (err) {
    console.log('读取错误');
    }else{
    console.log(data);
    }
    });

    //OR

    const fs = require('fs');
    fs.readFile('test.txt',{'encoding':'utf8','flag':'r'},(err,data)=>{
    if (err) {
    console.log('读取错误');
    }else{
    console.log(data);
    }
    });
    //encoding 默认 null flag 默认 'r'

Node.js 文件模块之 writeFile

fs.writeFile(file, data[, options], callback)写文件

  • 四个参数,分别为文件路径,要写入的数据 data (可以是字符串也可以是 Buffer ),配置参数(可以是对象和字符串),回调函数(和 readFile 不同的是该处的回调函数只有 err 参数)
  • encoding | Default: ‘utf8’
  • mode Default: 0o666
  • flag Default: ‘w’
  • Asynchronously writes data to a file, replacing the file if it already exists. data can be a string or a buffer.
  • The encoding option is ignored if data is a buffer. It defaults to ‘utf8’
1
2
3
4
5
const fs = require('fs');
fs.writeFile('test01.txt','1234567890',(err)=>{
if (err) console.log('写入失败');
console.log('success');
});