(三)fs檔案操作模組
fs模組用於檔案的讀寫等操作。
該模組有如下這些方法:
1、fs.stat() : 檢測是檔案還是目錄
const fs = require('fs');
fs.stat('test.html',function(err,stats){
if(err){
console.log(err);
}else{
console.log('檔案:' + stats.isFile()); //true
console.log('目錄:' + stats.isDirectory()); //false
}
});
2、fs.mkdir():建立目錄
接受如下幾個引數:
- path :將建立的目錄路徑
- mode :目錄許可權(讀寫許可權),預設0777
- callback :回撥,傳遞異常引數err
fs.mkdir('css',function(err){
if(err){
console.log(err);
}else{
console.log("建立成功");
}
});
3、fs.writeFile():寫入檔案
- filename (String) 檔名稱
- data (String | Buffer) 將要寫入的內容,可以使字串 或 buffer資料。
- options (Object) option陣列物件,包含 :
- · encoding (string) 可選值,預設 ‘utf8′,當data使buffer時,該值應該為 ignored。
- · mode (Number) 檔案讀寫許可權,預設值 438
- · flag (String) 預設值 ‘w'
- callback {Function} 回撥,傳遞一個異常引數err。
var str = "Hello Node.js";
fs.writeFile('write.txt', str, 'utf8', function (err) {
if (err) {
console.log(err);
}else{
console.log("建立成功");
}
});
如果該檔案不存在則建立該名稱檔案並寫入資料。如果多次寫入的話,那麼後面寫入的內容會覆蓋前面寫入的內容。
4、fs.appendFile():追加檔案
用法與writeFile
相同,只是對此寫入的話不會覆蓋之前的資料,而是在其後追加資料。
5、fs.readFile() :讀取檔案
回撥函式中的data
即包含了讀取的資料。
fs.readFile('write.txt',function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
6、fs.readdir():讀取目錄,獲取目錄下面的檔案和資料夾。
fs.readdir('css',function(err,data){
if (err){
console.log(err);
}else{
console.log(data);
}
});
不過這樣只能獲取第一級目錄
7、fs.rename():重新命名檔案
fs.rename('html/index.html','html/news.html',function(err){
if (err) {
console.log(err);
} else {
console.log('修改名字成功');
}
})
這樣就可以把index.html
檔名修改為news.html
。
這個方法還可以實現檔案剪下功能:
fs.rename('html/css/basic.css','html/style.css',function(err){
if(err){
console.log(err);
return false;
}
console.log('剪下成功');
})
這樣就可以把html/css/basic.css
剪下到html/style.css
。
8、fs.redir():刪除目錄
fs.rmdir('text',function(err){
if(err){
console.log(err);
return false;
}
console.log('刪除目錄成功');
})
這裡的刪除只能刪除空目錄。
9、fs.unlink():刪除檔案
fs.unlink('index.txt',function(err){
if(err){
console.log(err);
return false;
}
console.log('刪除檔案成功');
})
10、fs.createReadStream():以流的方式讀取資料
這種方式讀取檔案是分塊讀取的
// 建立一個可以讀取的流,讀取檔案 input.txt 中
var readStream=fs.createReadStream('input.txt');
var str='';/*儲存資料*/
var count=0; /*次數*/
//觸發data事件,開始取讀資料
readStream.on('data',function(chunk){
str+=chunk;
count++;
})
//觸發end事件,讀取完成
readStream.on('end',function(chunk){
console.log(count);
console.log(str);
})
//讀取失敗
readStream.on('error',function(err){
console.log(err);
})
這種讀取方式很高效,適合取讀大批量資料。如果所讀資料量不是很大的話使用上面的readFile
方法即可。
11、fs.createWriteStream():以流的方式寫入檔案
var data = '我是從資料庫獲取的資料,我要儲存到檔案中去\n';
// 建立一個可以寫入的流,寫入到檔案 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
//開始寫入資料
writerStream.write(data,'utf8');
//標記寫入完成
writerStream.end();
//觸發finish事件,完成寫入
writerStream.on('finish',function(){
console.log('寫入完成');
})
//失敗
writerStream.on('error',function(){
console.log('寫入失敗');
})
同樣,如果要寫入的檔案不存在就建立該檔案再寫入。
12、管道流讀取
管道提供了一個輸出流到輸入流的機制。通常我們用於從一個流中獲取資料並將資料傳遞到另外的一個流中。
// 建立一個可讀流,這是管道的輸出端
var readerStream = fs.createReadStream('input.txt');
// 建立一個可寫流,這是管道的輸入端
var writerStream = fs.createWriteStream('output.txt');
// 管道讀寫操作
// 讀取 input.txt 檔案內容,並將內容寫入到 output.txt 檔案中
readerStream.pipe(writerStream);
console.log("程式執行完畢");
相關文章
- node fs檔案操作
- 05_Node js 檔案管理模組 fsJS
- node 之fs 操作檔案 ? 快取Buffer ?快取
- Node.Js之FS檔案操作篇Node.js
- NodeJs fs(檔案系統簡單操作)NodeJS
- nodejs學習心得(三)fs模組NodeJS
- path模組 fs模組
- python–模組之os操作檔案模組Python
- [Python] shutil 模組(檔案操作)Python
- Python OS模組操作檔案Python
- 第二章:前端視角——NodeJS檔案操作fs(1)前端NodeJS
- node-"fs-extra"模組代替fs使用
- Node fs模組學習
- nodejs之-fs模組NodeJS
- Nodejs 的 fs 模組NodeJS
- Python模組學習:zipfile zip檔案操作Python
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- Python|讀、寫Excel檔案(三種模組三種方式)PythonExcel
- 十三、Node.js-fs模組(上)Node.js
- Node中fs模組 API詳解API
- fs模組之刪除目錄
- 每天學點node系列-fs檔案系統
- nodeJs檔案系統(fs)與流(stream)NodeJS
- node.js常用的fs檔案系統Node.js
- Python模組學習:tempfile 臨時檔案(夾)操作Python
- 每天學點node系列-fs檔案系統(續)
- 用友NCCloud FS檔案管理SQL隱碼攻擊CloudSQL
- 檔案操作
- 把檔案每隔三行合併成一行(awk之RS、ORS與FS、OFS)
- 【GMT43智慧液晶模組】例程十三:FATFS實驗——檔案操作
- 核心模組建立檔案
- C檔案與檔案的操作
- Go檔案操作Go
- 檔案操作(下)
- lua檔案操作
- JAVA 操作檔案Java
- golang操作檔案Golang