Node.js中fs模塊的使用方法
引入fs模塊
var fs=require('fs');1. fs.stat檢測是文件還是目錄
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)建目錄
//接收參數:
//path 將創(chuàng)建的目錄路徑
//mode 目錄權限(讀寫權限),默認0777
//callback 回調,傳遞異常參數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) 將要寫入的內容,可以使字符串 或 buffer數據。
//options (Object) option數組對象,包含:
//· encoding (string) 可選值,默認 ‘utf8′,當data使buffer時,該值應該為 ignored。
//· mode (Number) 文件讀寫權限,默認值 438
//· flag (String) 默認值 ‘w'
//callback {Function} 回調,傳遞一個異常參數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', '這是追加的內容', 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 刪除目錄
這個方法只能刪除目錄,不可以刪除文件
刪除空目錄
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 從文件流中讀取數據
//流的方式讀取文件
var readStream = fs.createReadStream('input.txt');
var str = '';
//保存數據
var count = 0;
//次數
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 = '我是從數據庫獲取的數據,我要保存起來\n';
// 創(chuàng)建一個可以寫入的流,寫入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
for (var i = 0; i < 100; i++) {
writerStream.write(data, 'utf8');
}
//標記寫入完成
writerStream.end();
writerStream.on('finish', function () {
console.log('寫入完成');
})
//失敗
writerStream.on('error', function () {
console.log('寫入失敗');
})12. 管道流
管道提供了一個輸出流到輸入流的機制。通常我們用于從一個流中獲取數據并將數據傳遞到另外一個流中。

如上面的圖片所示,我們把文件比作裝水的桶,而水就是文件里的內容,我們用一根管子(pipe)連接兩個桶使得水從一個桶流入另一個桶,這樣就慢慢的實現了大文件的復制過程。
以下實例我們通過讀取一個文件內容并將內容寫入到另外一個文件中。
// 創(chuàng)建一個可讀流
var readerStream = fs.createReadStream('input.txt');
// 創(chuàng)建一個可寫流
var writerStream = fs.createWriteStream('output.txt');
// 管道讀寫操作
// 讀取 input.txt 文件內容,并將內容寫入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序執(zhí)行完畢");Demo
判斷服務器上面有沒有upload目錄。沒有創(chuàng)建這個目錄
var fs = require('fs');
fs.stat('upload', function (err, stats) {
if (err) { // 沒有這個目錄
fs.mkdir('upload', function (error) {
if (error) {
console.log(error);
return false;
}
console.log('創(chuàng)建成功');
})
} else {
console.log('目錄已經存在');
console.log(stats.isDirectory());
}
})以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Node.js?內置模塊fs文件系統(tǒng)操作示例詳解
- Node.js?操作本地文件及深入了解fs內置模塊
- 總結Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識)
- node.js-fs文件系統(tǒng)模塊這是你知道嗎
- 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?模塊的高級用法實例詳解
相關文章
Node.js使用sharp庫實現PNG圖片轉換為WebP格式
在 Node.js 中,可以使用 sharp 庫將 PNG 圖片轉換為 WebP 格式,sharp 是一個高性能的圖像處理庫,支持多種圖像格式的轉換和處理,以下是如何使用 sharp 將 PNG 圖片轉換為 WebP 的詳細步驟,需要的朋友可以參考下2024-12-12
通過實例了解Nodejs模塊系統(tǒng)及require機制
這篇文章主要介紹了通過實例了解Nodejs模塊系統(tǒng)及require機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07
nodejs?express路由匹配控制及Router模塊化使用詳解
這篇文章主要為大家介紹了nodejs?express路由匹配控制及Router模塊化使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10

