我们来看一下如何写一个文件。
创建19-writeFile.js
首先,先引入fs模块和path模块
|
|
写入文件一共有三种方式,
异步写入
fs.writeFile()
同步写入
fs.writeFileSync()
以流的方式写入
fs.createWriteStream()
一、fs.writeFile()
|
|
fs.writeFile()的第二个参数是类型值,可以是any,我们刚写入了一个对象,看看会是什么结果。我们执行一下
|
|
写入成功,我们看看demo.txt里是什么
|
|
我们可以发现,写入的内容就是object.toString()过后的结果。
那么怎么才能达到我们想要的结果呢?
答案是用JSON.stringify()把对象转换为JSON(序列化)
JSON.stringify() => 序列化
JSON.parse() => 反序列化
我们修改一下上面的代码
|
|
再来执行一下。我们看到demo.txt是如下结果
|
|
什么情况会出现写文件错误呢?
- 意外错误
- 文件权限问题
- 文件夹找不到(不会自动创建文件夹)
二、fs.writeFileSync()
|
|
执行过后,demo.txt里的内容变为
|
|
三、fs.createWriteStream()
|
|
执行过后,demo.txt里的内容变为
|
|
以上就是写入文件的三种方式。
but,我们发现了一个问题,就是文件写入默认是会覆盖之前的内容的,那么怎么才能不覆盖呢?好,我们引出下面的API,fs.appendFile(),用法和上面的一样。
|
|
执行本代码过后,demo.txt里的内容变为了
|
|
本文结束,感谢阅读。
本文作者:melody0z
本文链接:https://melodyvoid/Node/file-write.html
欢迎转载,转载请注明文本链接