Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法
fs模塊.js:
/*
1. fs.stat 檢測(cè)是文件還是目錄(目錄 文件是否存在)
2. fs.mkdir 創(chuàng)建目錄 (創(chuàng)建之前先判斷是否存在)
3. fs.writeFile 寫(xiě)入文件(文件不存在就創(chuàng)建,但不能創(chuàng)建目錄)
4. fs.appendFile 寫(xiě)入追加文件
5.fs.readFile 讀取文件
6.fs.readdir 讀取目錄
7.fs.rename 重命名
8. fs.rmdir 刪除目錄
9. fs.unlink 刪除文件
*/
var fs=require('fs'); //fs是node.js的核心模塊,不用下載安裝,可以直接引入
//1. fs.stat 檢測(cè)是文件還是目錄 fs.statSync()同步獲取stats對(duì)象,通過(guò)返回值接收。
fs.stat('html',function(error,stats){
if(error){
console.log(error);
return false;
}
console.log('文件:'+stats.isFile());
console.log('目錄:'+stats.isDirectory());
})
//2. fs.mkdir 創(chuàng)建目錄
fs.mkdir('css',function(error){
if(error){
console.log(error);
return false;
}
console.log('創(chuàng)建目錄成功');
})
//3. fs.writeFile 寫(xiě)入文件(會(huì)覆蓋之前的內(nèi)容)(文件不存在就創(chuàng)建) utf8參數(shù)可以省略
fs.writeFile('123.txt','你好nodejs 覆蓋','utf8',function(error){
if(error){
console.log(error);
return false;
}
console.log('寫(xiě)入成功');
})
//4. fs.appendFile 追加文件
fs.appendFile('123.txt','這是寫(xiě)入的內(nèi)容\n',function(error){
if(error){
console.log(error);
return false;
}
console.log('寫(xiě)入成功');
})
//5.fs.readFile 讀取文件
fs.readFile('123.txt',function(error,data){
if(error){
console.log(error);
return false;
}
//console.log(data); //data是讀取的十六進(jìn)制的數(shù)據(jù)。 也可以在參數(shù)中加入編碼格式"utf8"來(lái)解決十六進(jìn)制的問(wèn)題;
console.log(data.toString()); //讀取出所有行的信息
})
//6.fs.readdir 讀取目錄下第一級(jí)內(nèi)容 把目錄下面的文件和文件夾都獲取到。
fs.readdir('html',function(error,data){
if(error){
console.log(error);
return false;
}
console.log(data); //data是數(shù)組類型,包含文件夾以及文件的名字(只有第一級(jí)目錄內(nèi)容)。拿到一個(gè)文件夾下面的所有目錄
})
//7.fs.rename 重命名 1.改名 2.剪切文件(移動(dòng))
fs.rename('html/index.html','html/news.html',function(error){
if(error){
console.log(error);
return false;
}
console.log('修改名字成功');
})
//8. fs.rmdir 刪除目錄 rmdir 這個(gè)方法只能刪除目錄,不能刪除文件
fs.rmdir('abc目錄',function(error){
if(error){
console.log(error);
return false;
}
console.log('刪除目錄成功');
})
//9. fs.unlink刪除文件
fs.unlink('index.txt',function(error){
if(error){
console.log(error);
return false;
}
console.log('刪除文件成功');
})
//10. fs.createReadStream 從文件流中讀取數(shù)據(jù),讀取的文件比較大時(shí)建議用流的方式讀取,文件比較大會(huì)多次讀取。
var fileReadStream = fs.createReadStream( 'data1.json');
var str = '';
fileReadStream.on('data', (data) => {
console.log("接收到" + data.length); //文件比較大時(shí),會(huì)多次讀取,多次執(zhí)行該回調(diào)函數(shù)
str += data;
})
fileReadStream.on('end', () => {
console.log(" --- 結(jié)束 ---");
console.log( str );
})
fileReadStream.on('error', (error) => {
console.log(error)
})
//11. fs.createWriteStream 寫(xiě)入文件流
var fs = require("fs");
var data = "我是從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù),我要保存起來(lái)";
var writerStream = fs.createWriteStream('output.txt');
writerStream.write( data , 'UTF8' );
writerStream.end(); //標(biāo)記文件末尾 結(jié)束寫(xiě)入流,釋放資源
writerStream.on( 'finish', function() {
console.log("寫(xiě)入完成。");
});
writerStream.on( 'error', function(error){
console.log(error.stack);
});
console.log("程序執(zhí)行完畢");
//12. pipe 管道流
var fs = require("fs");
var readerStream = fs.createReadStream( 'input.txt');
var writerStream = fs.createWriteStream( 'output.txt');
readerStream.pipe( writerStream );
console.log("程序執(zhí)行完畢");
//13. fs.access 判斷目錄、文件是否存在(讀寫(xiě)權(quán)限)
var fs = require('fs');
fs.access('package.json',(err)=>{
console.log(err ? '目錄/文件不存在': '文件存在,可以進(jìn)行讀寫(xiě)');
});
總結(jié)
以上所述是小編給大家介紹的Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
基于websocket實(shí)現(xiàn)簡(jiǎn)單聊天室對(duì)話
這篇文章主要為大家詳細(xì)介紹了基于websocket實(shí)現(xiàn)簡(jiǎn)單聊天室對(duì)話,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
node.js利用express自動(dòng)搭建項(xiàng)目的全過(guò)程
這篇文章主要給大家介紹了關(guān)于node.js利用express自動(dòng)搭建項(xiàng)目的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Node.js?實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)的示例代碼
本文主要介紹了Node.js?實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng),爬取美食網(wǎng)站的菜品標(biāo)題和圖片鏈接,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Node.js 使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件
這篇文章主要介紹了Node.js使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件,需要的朋友可以參考下2017-09-09
node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作
通常在NodeJS開(kāi)發(fā)中我們經(jīng)常涉及到操作數(shù)據(jù)庫(kù),尤其是 MySQL ,作為應(yīng)用最為廣泛的開(kāi)源數(shù)據(jù)庫(kù)則成為我們的首選,本篇就來(lái)介紹下如何通過(guò)NodeJS來(lái)操作 MySQL 數(shù)據(jù)庫(kù)。2014-07-07
從零學(xué)習(xí)node.js之mysql數(shù)據(jù)庫(kù)的操作(五)
因?yàn)榻佑|Node.JS已經(jīng)有一段時(shí)間了,最近粗略的研究了一下node.js操作數(shù)據(jù)庫(kù)的包,覺(jué)得node.js連接數(shù)據(jù)庫(kù)不錯(cuò)。下面這篇文章主要給大家介紹了node.js之mysql數(shù)據(jù)庫(kù)操作的相關(guān)資料,需要的朋友可以參考下。2017-02-02
基于NodeJS開(kāi)發(fā)釘釘回調(diào)接口實(shí)現(xiàn)AES-CBC加解密
這篇文章主要介紹了基于NodeJS開(kāi)發(fā)釘釘回調(diào)接口 實(shí)現(xiàn)AES-CBC加解密,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
詳解Nodejs 通過(guò) fs.createWriteStream 保存文件
本篇文章主要介紹了Nodejs 通過(guò) fs.createWriteStream 保存文件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10

