node.js-fs文件系統(tǒng)模塊這是你知道嗎
1、什么是fs文件系統(tǒng)模塊
【解釋】: fs文件系統(tǒng)模塊是Node.js官方提供的,用來操作文件的模塊,它提供了一系列的方法和屬性,用來滿足用戶對文件操作的基本需求。
【基本使用】:
安裝node后直接導入
const fs = require ('fs')
2、讀取指定文件的內(nèi)容
1、fs.readFile()的語法格式
【語法】:
fs.readFile(path, [,options], callback)
【參數(shù)解讀】:
- 參數(shù)1:
必選參數(shù),表示讀取文件的路徑 - 參數(shù)2:
可選參數(shù),表示可選參數(shù),表示通過什么方式的編碼來讀取文件 - 參數(shù)3:
必選參數(shù),回調(diào)函數(shù),通過回調(diào)函數(shù)獲取文件內(nèi)容
2、fs.readFile()讀取文件內(nèi)容
【代碼示例】:
// 1、導入fs模塊
const fs = require('fs');
// 2、使用fs.readfiles()方法讀取指定文件的內(nèi)容
/**
* 參數(shù)1:讀取文件的存放路徑
* 參數(shù)2:讀取文件的時候采用的編碼格式
* 參數(shù)3:回調(diào)函數(shù),參數(shù)1表示讀取失敗的結(jié)果 參數(shù)2 表示讀取成功的結(jié)果
*/
fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
// 文件信息讀取成功的時候err返回值是null
console.log(err);
console.log('------------------');
console.log(dataStr);
})
3、判斷文件是否讀取成功
【代碼示例】:
// 1、導入fs模塊
const fs = require('fs');
// 2、使用fs.readfiles()方法讀取指定文件的內(nèi)容
/**
* 參數(shù)1:讀取文件的存放路徑
* 參數(shù)2:讀取文件的時候采用的編碼格式
* 參數(shù)3:回調(diào)函數(shù),參數(shù)1表示讀取失敗的結(jié)果 參數(shù)2 表示讀取成功的結(jié)果
*/
fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
if (err) {
// 讀取文件失敗,返回錯誤信息
return console.log('讀取文件失?。?!' + err.message);;
} else {
// 讀取文件成功,打印文件信息
console.log('讀取文件成功:'+dataStr);
}
})
3、向指定文件寫入內(nèi)容
1、fs.writeFile()的語法格式
【語法】:
fs.writeFile(filePath, data, [,option] callback)
【參數(shù)解讀】:
- 參數(shù)1:
必選參數(shù),指定文件字符串路徑,表示文件的存放路徑 - 參數(shù)2:
必選參數(shù),表示要寫入的內(nèi)容 - 參數(shù)3:
可選參數(shù),表示用什么方式寫入內(nèi)容,默認是utf-8 - 參數(shù)4:
必選參數(shù),表示文件寫入之后的回調(diào)函數(shù)。
2、fs.writeFile()寫入文件
【代碼示例】:
// 1、導入fs模塊
const fs = require('fs')
// 2、使用fs.writeFile()方法,向文件中寫入內(nèi)容
/**
* 參數(shù)1:寫入信息的路徑
* 參數(shù)2:要寫入的內(nèi)容
* 參數(shù)3:回調(diào)函數(shù)
* 參數(shù)4:編碼格式,默認是utf-8,可以省略不寫
*/
fs.writeFile('./files/2.txt', '張三', function (err) {
// 如果文件寫入成功,err返回null
// 如果文件寫入失敗,則返回一個錯誤對象
console.log(err);
})
3、fs.writeFile()判斷寫入是否成功
// 1、導入fs模塊
const fs = require('fs')
// 2、使用fs.writeFile()方法,向文件中寫入內(nèi)容
/**
* 參數(shù)1:寫入信息的路徑
* 參數(shù)2:要寫入的內(nèi)容
* 參數(shù)3:回調(diào)函數(shù)
* 參數(shù)4:編碼格式,默認是utf-8,可以省略不寫
*/
fs.writeFile('./files/2.txt', '張三', function (err) {
// 如果文件寫入成功,err返回null
// 如果文件寫入失敗,則返回一個錯誤對象
if (err) {
return console.log('文件寫入失敗' + err.message);
} else {
console.log('文件寫入成功!!');
}
})
4、寫入文件和讀取文件綜合應用
【需求】:
- 使用 fs 文件系統(tǒng)模塊,將成績.txt文件中的考試數(shù)據(jù),整理到成績-ok.txt文件中。
- 整理前,成績.txt文件中的數(shù)據(jù)格式如下:
- 小紅=100…
- 整理后的格式如下:
- 小紅:100…
【案例分析】:
- 導入fs文件模塊
- 讀取文件中的舊數(shù)據(jù)
- 判斷是否讀取成功
- 數(shù)據(jù)格式處理
- 寫入新的文件中
【代碼實現(xiàn)】:
// 1、導入fs文件系統(tǒng)模塊
const fs = require("fs");
// 2、讀取成績信息
fs.readFile('./files/成績.txt', 'utf-8', function (err, data) {
// 判斷成績是否讀取成功
if (err) {
// 讀取失敗,返回錯誤信息
return console.log('讀取成績失敗??!' + err.message);
} else {
// 讀取成功。返回讀取的數(shù)據(jù)
// 將成績的數(shù)據(jù)按照空格分隔
const arrOld = data.split(' ')
// 對分隔后的數(shù)組,對每一項數(shù)據(jù)進行字符串替換操作
arrNew = [];
arrOld.forEach(item => {
arrNew.push(item.replace('=', ':'))
})
// 對新的數(shù)組中的每一項進行合并
const newStr = arrNew.join('\r\n')
// 將新的數(shù)據(jù)寫入文件
fs.writeFile('./files/newScore.txt', newStr, function (err) {
// 判斷是否寫入成功
if (err) {
// 寫入失敗,返回錯誤信息
return console.log('寫入文件信息失?。?!' + err.message);
} else {
// 寫入成功
console.log('寫入文件成功??!');
}
})
}
})
5、fs模塊-路徑動態(tài)拼接問題
【問題描述】: 在使用 fs 模塊操作文件時,如果提供的操作路徑是以 ./ 或 …/ 開頭的相對路徑時,很容易出現(xiàn)路徑動態(tài)拼接錯誤的問題。
【原因】: 代碼在運行的時候,會以執(zhí)行 node 命令時所處的目錄,動態(tài)拼接出被操作文件的完整路徑。
【解決方案】:
在使用 fs 模塊操作文件時,直接提供完整的路徑,不要提供 ./ 或 …/ 開頭的相對路徑,從而防止路徑動態(tài)拼接的問題。
const fs = require('fs');
// __dirname表示當前文件的目錄
fs.readFile(__dirname + '/files/11.txt', 'utf-8', function (err, data) {
if (err) {
return err.message;
} else {
console.log(data);
}
})
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
- Node.js?內(nèi)置模塊fs文件系統(tǒng)操作示例詳解
- Node.js?操作本地文件及深入了解fs內(nèi)置模塊
- 總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識)
- Node.js中fs模塊的使用方法
- Node.js 中的 fs 模塊與Path模塊方法詳解
- Node.js中文件系統(tǒng)fs模塊的使用及常用接口
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法
- node.js基于fs模塊對系統(tǒng)文件及目錄進行讀寫操作的方法詳解
- 淺談Node.js:fs文件系統(tǒng)模塊
- Node.js?中?fs?模塊的高級用法實例詳解
相關文章
詳解nodejs express下使用redis管理session
本篇文章主要介紹了詳解nodejs express下使用redis管理session ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04
如何使用axios庫在Node.js中進行代理請求(實踐案例)
axios是一個強大的基于Promise的HTTP客戶端,它在瀏覽器和Node.js環(huán)境中均可使用,本文將介紹如何充分利用axios庫,在Node.js中進行代理請求的最佳實踐,并通過一個實際案例來展示其應用,感興趣的朋友一起看看吧2024-03-03
在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解
在樹莓派上運行NodeJS并不需要特別的配置,你只需要確??梢杂胦penssh遠程連接到你的樹莓派就ok了,關于在Debian(Raspberry Pi)樹莓派上安裝NodeJS的方法,大家可以通過本文了解下2017-09-09
Node.js 實現(xiàn)搶票小工具 & 短信通知提醒功能
這篇文章主要介紹了Node.js 實現(xiàn)搶票小工具 & 短信通知提醒功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

