Node.js中fs模塊的使用方法
引入fs模塊
var fs=require('fs');1. fs.stat檢測(cè)是文件還是目錄
fs.stat('html/style.css', function (err, stats) {
if (err) {
console.log(err);
return false;
}
console.log('文件:' + stats.isFile()); // true
console.log('目錄:' + stats.isDirectory()); // false
})2. fs.mkdir 創(chuàng)建目錄
//接收參數(shù):
//path 將創(chuàng)建的目錄路徑
//mode 目錄權(quán)限(讀寫權(quán)限),默認(rèn)0777
//callback 回調(diào),傳遞異常參數(shù)err
fs.mkdir('css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('創(chuàng)建目錄成功');
})3. fs.writeFile 創(chuàng)建寫入文件
//filename (String) 文件名稱
//data (String | Buffer) 將要寫入的內(nèi)容,可以使字符串 或 buffer數(shù)據(jù)。
//options (Object) option數(shù)組對(duì)象,包含:
//· encoding (string) 可選值,默認(rèn) ‘utf8′,當(dāng)data使buffer時(shí),該值應(yīng)該為 ignored。
//· mode (Number) 文件讀寫權(quán)限,默認(rèn)值 438
//· flag (String) 默認(rèn)值 ‘w'
//callback {Function} 回調(diào),傳遞一個(gè)異常參數(shù)err。
fs.writeFile('t.txt', '你好nodejs', 'utf8', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('寫入成功');
})4. fs.appendFile 追加文件
fs.appendFile('t.txt', '這是追加的內(nèi)容', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('寫入成功');
})5.fs.readFile 讀取文件
fs.readFile('t.txt', function (err, data) {
if (err) {
console.log(err);
return false;
}
console.log(data);
console.log(data.toString());
})6.fs.readdir 讀取目錄
把目錄下面的文件和文件夾都獲取到
fs.readdir('html', function (err, data) {
if (err) {
console.log(err);
return false;
}
console.log(data);
})7.fs.rename 重命名
1、改名
fs.rename('html/index.html', 'html/news.html', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('修改名字成功');
})2、剪切文件
fs.rename('html/style.css', 'html/test/basic.css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('剪切成功');
})8. fs.rmdir 刪除目錄
這個(gè)方法只能刪除目錄,不可以刪除文件
刪除空目錄
fs.rmdir('css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('刪除目錄成功');
})9. fs.unlink 刪除文件
fs.unlink('css/1.js', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('刪除文件成功');
})10. fs.createReadStream 從文件流中讀取數(shù)據(jù)
//流的方式讀取文件
var readStream = fs.createReadStream('input.txt');
var str = '';
//保存數(shù)據(jù)
var count = 0;
//次數(shù)
readStream.on('data', function (chunk) {
str += chunk;
count++;
})
//讀取完成
readStream.on('end', function (chunk) {
console.log(count);
console.log(str);
})
//讀取失敗
readStream.on('error', function (err) {
console.log(err);
})11. fs.createWriteStream 寫入文件
var data = '我是從數(shù)據(jù)庫獲取的數(shù)據(jù),我要保存起來\n';
// 創(chuàng)建一個(gè)可以寫入的流,寫入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
for (var i = 0; i < 100; i++) {
writerStream.write(data, 'utf8');
}
//標(biāo)記寫入完成
writerStream.end();
writerStream.on('finish', function () {
console.log('寫入完成');
})
//失敗
writerStream.on('error', function () {
console.log('寫入失敗');
})12. 管道流
管道提供了一個(gè)輸出流到輸入流的機(jī)制。通常我們用于從一個(gè)流中獲取數(shù)據(jù)并將數(shù)據(jù)傳遞到另外一個(gè)流中。

如上面的圖片所示,我們把文件比作裝水的桶,而水就是文件里的內(nèi)容,我們用一根管子(pipe)連接兩個(gè)桶使得水從一個(gè)桶流入另一個(gè)桶,這樣就慢慢的實(shí)現(xiàn)了大文件的復(fù)制過程。
以下實(shí)例我們通過讀取一個(gè)文件內(nèi)容并將內(nèi)容寫入到另外一個(gè)文件中。
// 創(chuàng)建一個(gè)可讀流
var readerStream = fs.createReadStream('input.txt');
// 創(chuàng)建一個(gè)可寫流
var writerStream = fs.createWriteStream('output.txt');
// 管道讀寫操作
// 讀取 input.txt 文件內(nèi)容,并將內(nèi)容寫入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序執(zhí)行完畢");Demo
判斷服務(wù)器上面有沒有upload目錄。沒有創(chuàng)建這個(gè)目錄
var fs = require('fs');
fs.stat('upload', function (err, stats) {
if (err) { // 沒有這個(gè)目錄
fs.mkdir('upload', function (error) {
if (error) {
console.log(error);
return false;
}
console.log('創(chuàng)建成功');
})
} else {
console.log('目錄已經(jīng)存在');
console.log(stats.isDirectory());
}
})以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Node.js?內(nèi)置模塊fs文件系統(tǒng)操作示例詳解
- Node.js?操作本地文件及深入了解fs內(nèi)置模塊
- 總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
- node.js-fs文件系統(tǒng)模塊這是你知道嗎
- Node.js 中的 fs 模塊與Path模塊方法詳解
- Node.js中文件系統(tǒng)fs模塊的使用及常用接口
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法
- node.js基于fs模塊對(duì)系統(tǒng)文件及目錄進(jìn)行讀寫操作的方法詳解
- 淺談Node.js:fs文件系統(tǒng)模塊
- Node.js?中?fs?模塊的高級(jí)用法實(shí)例詳解
相關(guān)文章
Node.js DES加密的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)硪黄狽ode.js DES加密的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07
史上無敵詳細(xì)的Node.Js環(huán)境搭建步驟記錄
Node.js是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,由于其擁有異步非阻塞、環(huán)境搭建簡(jiǎn)單、實(shí)踐應(yīng)用快等特性,使得其在新一代編程開發(fā)中更為流行,下面這篇文章主要給大家介紹了關(guān)于Node.Js環(huán)境搭建步驟記錄的相關(guān)資料,需要的朋友可以參考下2023-03-03
nodejs教程之制作一個(gè)簡(jiǎn)單的文章發(fā)布系統(tǒng)
本文主要講述了使用nodejs制作一個(gè)簡(jiǎn)單的文章發(fā)布系統(tǒng),使用mongodb數(shù)據(jù)庫,時(shí)間比較緊,功能做的也比較簡(jiǎn)單,僅僅是增刪改查,外加附近上傳,有相同需求的小伙伴可以參考下2014-11-11
完美解決node.js中使用https請(qǐng)求報(bào)CERT_UNTRUSTED的問題
下面小編就為大家?guī)硪黄昝澜鉀Qnode.js中使用https請(qǐng)求報(bào)CERT_UNTRUSTED的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
node.js?readline和line-reader逐行讀取文件方法
Readline是Node的原生模塊。它是專門為從任何可讀流逐行讀取內(nèi)容而開發(fā)的。它可用于從命令行讀取數(shù)據(jù),line-reader模塊是Node.js中逐行讀取文件的開源模塊。它不是本地模塊,所以你需要使用npm(節(jié)點(diǎn)包管理器)安裝它2022-10-10
Node.js 8 中的 util.promisify的詳解
本篇文章主要介紹了Node.js 8 中的 util.promisify的詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06

