1. 程式人生 > 其它 >fs檔案系統

fs檔案系統

fs 檔案系統
- 在Node通過fs模組來對系統中的檔案進行操作,fs模組是node中已經繼承好了,不需要在使用npm下載,直接引入即可
- 引入fs
var fs = require("fs");
- fs模組中的大部分操作都提供了兩種方法,同步方法和非同步方法
同步方法帶sync
非同步方法沒有sync,都需要回調函式

- 寫入檔案
1.同步寫入
2.非同步寫入
3.簡單寫入
4.流式寫入

- 讀取檔案
1.同步讀取
2.非同步讀取
3.簡單讀取
4.流式讀取

- 方法
- 開啟檔案
fs.open(path, flags[, mode], callback) 非同步
fs.openSync(path, flags[, mode]) 同步

- 讀寫檔案
fs.write(fd, string[, position[, encoding]], callback)
fs.writeSync(fd, string[, position[, encoding]])

fs.read(fd, buffer, offset, length, position, callback)
fs.readSync(fd, buffer, offset, length, position)

- 關閉檔案
fs.close(fd,callback)
fs.closeSync(fd);

- 簡單檔案讀取和寫入
fs.writeFile(file, data[, options], callback)
fs.writeFileSync(file, data[, options])

fs.readFile(path[, options], callback)
fs.readFileSync(path[, options])


- 流式檔案讀取和寫入
- 流式讀取和寫入適用於一些比較大的檔案
fs.createWriteStream(path[, options])
fs.createReadStream(path[, options])

path:

比如C:\Users\Believer\Desktop
// 在js中'\'是轉義字元,所以使用絕對路徑時,需要使用'\\'
fs.writeFileSync('C:\\Users\\Believer\\Desktop', 'It's so easy~')
// 或者使用'/'
fs.writeFileSync('C:/Users/Believer/Desktop', 'It's so easy~')

flags:

'a': 開啟檔案進行追加。 如果檔案不存在,則建立該檔案。

'ax': 類似於 'a' 但如果路徑存在則失敗。

'a+': 開啟檔案進行讀取和追加。 如果檔案不存在,則建立該檔案。

'ax+': 類似於 'a+' 但如果路徑存在則失敗。

'as': 以同步模式開啟檔案進行追加。 如果檔案不存在,則建立該檔案。

'as+': 以同步模式開啟檔案進行讀取和追加。 如果檔案不存在,則建立該檔案。

'r': 開啟檔案進行讀取。 如果檔案不存在,則會發生異常。

'r+': 開啟檔案進行讀寫。 如果檔案不存在,則會發生異常。

'rs+': 以同步模式開啟檔案進行讀寫。 指示作業系統繞過本地檔案系統快取。
    這主要用於在 NFS 掛載上開啟檔案,因為它允許跳過可能過時的本地快取。 它對 I/O 效能有非常實際的影響,因此除非需要,否則不建議使用此標誌。
    這不會將 fs.open() 或 fsPromises.open() 變成同步阻塞呼叫。 如果需要同步操作,應該使用類似 fs.openSync() 的東西。

'w': 開啟檔案進行寫入。 建立(如果它不存在)或截斷(如果它存在)該檔案。

'wx': 類似於 'w' 但如果路徑存在則失敗。

'w+': 開啟檔案進行讀寫。 建立(如果它不存在)或截斷(如果它存在)該檔案。

'wx+': 類似於 'w+' 但如果路徑存在則失敗。