fs 文件系統(tǒng)模塊

1.什么是 fs 文件系統(tǒng)模塊

fs 模塊是 Node.js 官方提供的、用來操作文件的模塊。它提供了一系列的方法和屬性,用來滿足用戶對文件的操作需求。

例如:

? fs.readFile() 方法,用來讀取指定文件中的內容

? fs.writeFile() 方法,用來向指定的文件中寫入內容

如果要在 JavaScript 代碼中,使用 fs 模塊來操作文件,則需要使用如下的方式先導入它:

const fs  = require('fs')

2.讀取指定文件中的內容

1. fs.readFile() 的語法格式

使用 fs.readFile() 方法,可以讀取指定文件中的內容,語法格式如下:

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

參數解讀:

? 參數1:必選參數,字符串,表示文件的路徑。

? 參數2:可選參數,表示以什么編碼格式來讀取文件。

? 參數3:必選參數,文件讀取完成后,通過回調函數拿到讀取的結果。

2. fs.readFile() 的示例代碼

以 utf8 的編碼格式,讀取指定文件的內容,并打印 err 和 dataStr 的值:

const fs = require('fs')
fs.readFile('要讀取的文件地址',"utf8",function(err,dataStr){
     console.log(err)
     console.log('-----')
     console.log(dataStr)
})

3. 判斷文件是否讀取成功

可以判斷 err 對象是否為 null,從而知曉文件讀取的結果:

const fs = require('fs')

fs.readFile('要讀取的文件地址', 'utf8', function(err, dataStr) {
  if (err) {
    return console.log('讀取文件失??!' + err.message)
  }
  console.log('讀取文件成功!' + dataStr)
})

3.向指定的文件中寫入內容

1. fs.writeFile() 的語法格式

使用 fs.writeFile() 方法,可以向指定的文件中寫入內容,語法格式如下:

fs.writeFile(file, data [,options ], callback)

參數解讀:

? 參數1:必選參數,需要指定一個文件路徑的字符串,表示文件的存放路徑。

? 參數2:必選參數,表示要寫入的內容

? 參數3:可選參數,表示以什么格式寫入文件內容,默認值是 utf8。

? 參數4:必選參數,文件寫入完成后的回調函數。

2. fs.writeFile() 的示例代碼

向指定的文件路徑中,寫入文件內容:

const fs = require('fs')

fs.writeFile('要寫入的文件地址', 'Hello Node.js', function(err) {
   console.log(err)
})

3. 判斷文件是否寫入成功

可以判斷 err 對象是否為 null,從而知曉文件寫入的結果:

const fs = require('fs')

fs.writeFile('要寫入的文件地址', '要寫入的內容', function(err) {
   if (err) {
    return console.log('文件寫入失敗!' + err.message)
  }
  console.log('文件寫入成功!')
})

4.案例練習 - 考試成績整理

使用 fs 文件系統(tǒng)模塊,將素材目錄下成績.txt文件中的考試數據,整理到成績-ok.txt文件中。

整理前,成績.txt文件中的數據格式如下:

小紅=99  小白=100  小黃=70  小黑=66  小綠=88

整理完成之后,希望得到的成績-ok.txt文件中的數據格式如下:

小紅:99
小白:100
小黃:70
小黑:66
小綠:88

核心實現步驟

① 導入需要的 fs 文件系統(tǒng)模塊

② 使用 fs.readFile() 方法,讀取素材目錄下的 成績.txt 文件

③ 判斷文件是否讀取失敗

④ 文件讀取成功后,處理成績數據

⑤ 將處理完成的成績數據,調用 fs.writeFile() 方法,寫入到新文件 成績-ok.txt 中

代碼如下:

// 1. 導入 fs 模塊
const fs = require('fs')

// 2. 調用 fs.readFile() 讀取文件的內容
fs.readFile('../素材/成績.txt', 'utf8', function(err, dataStr) {
  // 3. 判斷是否讀取成功
  if (err) {
    return console.log('讀取文件失??!' + err.message)
  }
  // console.log('讀取文件成功!' + dataStr)

  // 4.1 先把成績的數據,按照空格進行分割
  const arrOld = dataStr.split(' ')
  // 4.2 循環(huán)分割后的數組,對每一項數據,進行字符串的替換操作
  const arrNew = []
  arrOld.forEach(item => {
    arrNew.push(item.replace('=', ':'))
  })
  // 4.3 把新數組中的每一項,進行合并,得到一個新的字符串
  const newStr = arrNew.join('\r\n')

  // 5. 調用 fs.writeFile() 方法,把處理完畢的成績,寫入到新文件中
  fs.writeFile('./files/成績-ok.txt', newStr, function(err) {
    if (err) {
      return console.log('寫入文件失??!' + err.message)
    }
    console.log('成績寫入成功!')
  })
})

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容