nodejs 写入文件

2021-03-05 15:30

阅读:441

标签:enc   编码   fse   回调   ref   读取   方式   osi   log   

一、写入文件

文档参考地址

1. 常用写入文件方式

const fs = requiere(‘fs‘)
const path = require(‘path‘)
let file = path.resolve(__dirname, ‘./file.txt‘)
let data = {
    a: 1
}
// 异步写入数据到文件
fs.writeFile(file, JSON.stringify(data, null, 4), { encoding: ‘utf8‘ }, err => {})

2. 语法说明

/*
 * 异步写入数据到文件,(若存在文件,则覆盖写入)
 * @param file {string | Buffer | URL | integer} 文件名或文件描述符
 * @param data {string | Buffer | TypeArray | DataView} 写入文件的数据
 * @param options {Object | string}
 *          encoding {string | null}, 编码方式,默认值是 ‘utf8‘
 *          mode {integer}, 默认值是 0o666
 *          flag {string}, 写入方式,默认值是 ‘w‘,打开文件用于写入。 
 *                         如果文件不存在则创建文件,如果文件存在则截断文件
 * @param callback {Function} 回调函数
 *          err {Error} 写入文件内容时抛出的错误
 */
function writeFile(file, data[, options], callback) {}

备注:

  1. file 是文件名时,异步写入数据到文件(若文件已存在,则覆盖文件)

  2. file 是文件描述符时,其行为类似于调用 fs.write()

  3. 简单来说,若是已存在文件

    1. file 是文件名时,会被覆盖写入文件
    2. file 是文件描述符时,不是覆盖写入,文件不会被替换,文件的原始数据会被保留
  4. dataBuffer ,则 encoding 会被忽略

let data = new Uint8Array(Buffer.from(‘Nodejs‘))
fs.writeFile(file, data, err => {
    if (err) throw err
    console.log(‘文件已被写入‘)
})
  1. options 是字符串,则该值需是一个 字符串编码类型
fs.writeFile(file, data, ‘utf8‘, err => {})

二、同步创建文件

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

const fs = require(‘fs‘)
fs.writeFileSync(file, data[, options])

三、不同写入方式

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

这里表现为:不同的写入方式

常用的几种方式

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

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


四、其他类似 Api

点击查看更多
API 详情

fs.write(fd, buffer[, offset[, length[, position]]], callback)
fs.write(fd, string[, position[, encoding]], callback)
fs.writeSync(fd, buffer[, offset[, length[, position]]])
fs.writeSync(fd, string[, position[, encoding]])

nodejs 写入文件

标签:enc   编码   fse   回调   ref   读取   方式   osi   log   

原文地址:https://www.cnblogs.com/linjunfu/p/12905429.html


评论


亲,登录后才可以留言!