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]])
    
  • 相关阅读:
    Docker-网络命名空间
    Docker-为镜像添加SSH服务(CentOS)
    Docker-Dockerfile方式创建镜像
    Docker-Dockerfile方式创建数据卷容器
    MySQL-存储过程批量插入数据
    CentOS 升级内核
    集合-ConcurrentHashMap-jdk1.7
    Redis Lua脚本
    javascript中的string对象
    初识 控制台
  • 原文地址:https://www.cnblogs.com/linjunfu/p/12905429.html
Copyright © 2011-2022 走看看