fs模塊是node.js的內置模塊node
fs 模塊提供了一個 API,用於以模仿標準 POSIX 函數的方式與文件系統進行交互web
須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。api
```
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./06_fs.js', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(data)
})
// 打印 二進制 一個buf
/**
* PS E:\xxx\ccc\aaa\api> node 06_fs.js
<Buffer 2f 2f 20 e6 89 80 e6 9c 89 e6 96 87
e4 bb b6 e7 b3 bb e7 bb 9f e6 93 8d e4 bd 9c
e9 83 bd e5 85 b7 e6 9c 89 e5 90 8c e6 ad a5
e5 92 8c e5 bc 82 e6 ad ... >
*/
```
複製代碼
```
// 寫一個文件
const fs = require('fs')
fs.writeFile('./test.js', 'test test', {
encoding: 'utf8'
}, (err) => {
if (err) throw err
console.log('done!')
})
// 打印
// 在本文件價下增長一個test.js文件 內容爲 test test
// done!
```
複製代碼
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./07_fs_throw_string.js', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(data)
// 輸出字符串
console.log(data.toString())
})
<!--打印 -->
/**
* PS E:\xxx\xxx\xxx\api> node 07_fs_throw_string.js
<Buffer 2f 2f 20 20 e8 be 93 e5 87 ba 20 e5
ad 97 e7 ac a6 e4 b8 b2 0d 0a 63 6f 6e 73 74
20 66 73 20 3d 20 72 65 71 75 69 72 65 28 27
66 73 27 29 0d 0a 2f 2f ... >
// 輸出 字符串
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./07_fs_throw_string.js', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(data)
// 輸出字符串
console.log(data.toString())
})
*/
複製代碼
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./08_fs_throw_string.js', 'utf8', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(data)
})
// 輸出
// const fs = require('fs')
// // 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
// fs.readFile('./08_fs_throw_string.js', 'utf8', (err, data) => {
// // 若是出現錯誤 經過throw輸出
// if (err) throw err
// console.log(data)
// })
複製代碼
二者都須要讀取完文件(或者部分讀取)才能返回文件,都是須要等待的,那麼二者的區別什麼呢 ?bash
// 異步
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./08_fs_throw_string.js', 'utf8', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(111111111)
})
// 同步
const data = fs.readFileSync('./09_fs_sync.js', 'utf8')
console.log(data)
// 打印
/**
* // 異步
const fs = require('fs')
// 須要注意一點 若是操做成功完成,則第一個參數將爲 null 或 undefined。
fs.readFile('./08_fs_throw_string.js', 'utf8', (err, data) => {
// 若是出現錯誤 經過throw輸出
if (err) throw err
console.log(111111111)
})
// 同步
const data = fs.readFileSync('./09_fs_sync.js', 'utf8')
console.log(data)
111111111
*
*/
複製代碼
能夠看到同步的方法即便寫在後面也會先執行,由於異步的方法是交給i/o去執行的服務器
close併發