文件的异步写入

文件的异步写入

​ 异步写入方法原理和同步方法相同 只有一点不同 没有返回值 全部都靠回调

​ 也就是说传参的方式不同 都加了一个回调函数 方法名字都去掉了Sync

​ 一共涉及到三个方法

​ 1.open : 打开文件

​ 内置四个参数

​ 第一个参数是打开的文件路径

​ 第二个参数是打开方式

​ 文件的打开方式有三种

​ r : 只读方式打开

​ w : 写入方式打开 覆盖写

​ a : 写入方式打开 追加写

​ 第三个参数是打开权限 这个参数一般不传

​ 第四个参数是回调函数

​ 回调内置两个参数 第一个参数是错误 第二个参数是资源句柄

​ 2.write : 写入文件

​ 内置五个参数

​ 第一个参数是资源句柄

​ 第二个参数是写入的数据

​ 第三个参数是字符集 写入的字符集

​ 第四个参数是写入的起始位置 但是 我们一般不传

​ 第五个参数是回调

​ 回调内置一个参数 参数是错误

​ 3.close : 关闭文件

​ 内置两个个参数

​ 第一个参数是资源句柄

​ 第二个参数是回调函数

​ 回调内置一个参数 参数是错误

const fs = require('fs');

// 打开文件
/*
1.open  :  打开文件
    内置四个参数
        第一个参数是打开的文件路径
        第二个参数是打开方式
            文件的打开方式有三种
                r  :  只读方式打开
                w  :  写入方式打开   覆盖写
                a  : 写入方式打开  追加写
        第三个参数是打开权限  这个参数一般不传
        第四个参数是回调函数
            回调内置两个参数 第一个参数是错误  第二个参数是资源句柄
*/

// 定义一个对象  将对象写入
let arr = [
    { article_id: 1, article_title: "诫子书", article_author: "诸葛亮" },
    { article_id: 2, article_title: "兰亭集序", article_author: "王羲之" },
    { article_id: 3, article_title: "岳阳楼记", article_author: "范仲淹" },
    { article_id: 4, article_title: "滕王阁序", article_author: "王勃" }
]

fs.open('../test/4.async.json', 'w', (error, fd) => {
    if (error) {
        console.log('打开文件失败');
    } else {
        // 写入文件
        /*
            2.write  :  写入文件
                内置五个参数
                    第一个参数是资源句柄
                    第二个参数是写入的数据
                    第三个参数是字符集  写入的字符集
                    第四个参数是写入的起始位置  但是  我们一般不传
                    第五个参数是回调
                        回调内置一个参数  参数是错误
        */
        // 注意  :  对象不能直接进行写入操作  要先将其转化为字符串(JSON)
        fs.write(fd, JSON.stringify(arr), 'utf-8', err => {
            if (err) console.log('写入失败');
            else console.log('写入成功');
        })
        // 关闭文件
        /*
            3.close  :  关闭文件
            内置两个个参数
                第一个参数是资源句柄
                第二个参数是回调函数
                    回调内置一个参数  参数是错误
        */
        fs.close(fd, err => {
            err ? console.log('关闭失败') : console.log('关闭成功');
        })

    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值