#8 - Reading & Writing Files (fs)

今天要学习的依然是 node.js 的core modules (就是内建的模组啦),主角是:fs 一个能让我们读写档案的功能!(其实这个 fs 还有其他的功能,只是我们今天先介绍他其中的读写功能)

起手式一样,先把这个 fs require进来:
const fs = require('fs');

然後新增一个 readme.txt的文字档:

读取档案:fs.readFileSync (同步)、fs.readFile(非同步)
接着我们使用 readFileSync 这个 method 去读取档案的内容,要注意的是,这个 readFileSync 方法是同步的,所以若是下面还有其他 code ,要等读取完才会继续执行,若是想使用非同步的读取,直接使用 readFile 即可:

const fs = require('fs');

// readFileSync 语法:fs.readFileSync('欲读取的档案名称', '用什麽编码读')
let readMeSync = fs.readFileSync('readme.txt', 'utf8')
console.log(readMeSync)

// readFile 语法:fs.readFile('欲读取的档案名称', '用什麽编码读', 'callback function(err, data)')
fs.readFile('readme.txt', 'utf8', (err, data) => {
  console.log(data)
})

两种做法都可以得到 readme.txt 档案的内容:
“ yay ! you read me !!!!!!!!!! :) “

写入档案:fs.writeFileSync(同步)、fs.writeFile(非同步)
若是想要在档案里写入内容,则是用 writeFileSync

const fs = require('fs');
// fs.writeFileSync(file, data[, options])
// writeFileSync 一样有非同步的语法 writeFile
let readMeSync = fs.readFileSync('readme.txt', 'utf8')

fs. writeFileSync('writeme.txt', readMeSync )

这边要注意的是,writeFileSync 会先搜寻有没有跟这个名称一样的档案,若是有则覆盖原本内容,若是没有会建立一个新档案
若我们不想要档案被覆盖,纯粹只想新增内容的话,使用fs.appendFile()

最後,我们将两种方法结合试试:

const fs = require('fs');
fs.readFile('readme.txt', 'utf8', (err, data) => {
  fs.writeFile('writeme.txt', data)
})

这样就可以很简单的就把 readme 的内容搬到 writeme 里面惹!
是不是很轻松愉快啊!

今天就先到这边
我们明天见
ㄅㄅ


<<:  [Day04] - 新拟物风按钮(二) - shadow dom 介绍

>>:  [Day 3] 取得台股资料(基本篇)

Day5:深入认识 Coroutine

这几天我们把 Coroutine 神秘的面纱好像掀开了一点,知道他是用来解决非同步程序的问题,也我们...

30天程序语言研究

今天是30天程序语言研究的第四天,研究的语言是python,今天主要学习的部分是tuple和func...

Day 10 Dart语言-混合及泛型

混合mixins 介绍:mixin是一种可以把自己的方法提供给别的类别使用,却不需要成为其他类别的父...

从无到有打造验证码共享的 Line 机器人

想解决的问题 起因是今年七月开 Netflix 开始限制共享家庭方案,认证规则目前没有公开,但会根据...

案例:MLOps在医疗产业(下) - 3个局限性与4个学习要点

跟AI/ML 有关的监管考量 在前一篇的文章指出,在医疗产业中的监管文献有两篇。然而这两篇的内容其实...