zoukankan      html  css  js  c++  java
  • nodejs 写入文件

    一、写入文件

    文档参考地址

    1. 常用写入文件方式

    const fs = require('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]])
    
  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/linjunfu/p/12905429.html
Copyright © 2011-2022 走看看