NodeJs的fs讀寫刪除移動(dòng)監(jiān)聽
NodeJs版本:4.4.4
fs
文件系統(tǒng)模塊是一個(gè)封裝了標(biāo)準(zhǔn)的 POSIX 文件 I/O 操作的集合。Node.js 文件系統(tǒng)(fs 模塊)模塊中的方法均有異步和同步版本。
圖片的復(fù)制與粘貼
創(chuàng)建一個(gè)可讀流與一個(gè)寫入流。通過管道pipe。
var fileReadStream = fs.createReadStream(sourcePath);
var fileWriteStream = fs.createWriteStream(targetPath);
fileReadStream.pipe(fileWriteStream);
//監(jiān)聽關(guān)閉事件得知執(zhí)行完成
fileWriteStream.on('close', function() {
console.log('移動(dòng)成功!');
})
讀文件(fs.readFile)
定義:fs.readFile(filename[, options], callback)
參數(shù):
- filename:{String} 文件名/文件路徑
- options:{Object} 可選參數(shù)
encoding:{String | Null} 默認(rèn) = null 編碼方式
flag:{String} 默認(rèn) = 'r' 文件打開的行為(可寫,可讀等)
- callback:{Function}
var fs = require('fs');
//讀取文件
fs.readFile('../lianxi/child_process.js',{
encoding:'utf-8',
flag:'r'
}, function(err,data){
if(err) throw err;
console.log(data);
});
這里讀取文件如果不設(shè)置編碼方式,讀取的文件就是以buffer的形式返回。
<Buffer 76 61 72 20 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 20 3d 20 72 65 71 75 69 72 65 28 27 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 27 29 3b 0d 0a 76 61 72 ... >
設(shè)置為utf-8后,返回的就是字符串的形式。如下:
var child_process = require('child_process');...
寫文件(fs.writeFile)
定義:fs.writeFile(filename, data[, options], callback)
參數(shù):
- filename:{String}
- data:{String | Buffer}
- options:{Object}
encoding:{String | Null} 默認(rèn) = 'utf8'
mode:{Number} 默認(rèn) = 438 (aka 0666 in Octal)
flag:{String} 默認(rèn) = 'w'
- callback {Function}
//寫入文件
fs.writeFile('../lianxi/child_process.js','[zqz]要寫入的數(shù)據(jù)字符串或者buffer',{
encoding:'utf8',
mode:438,
flag:'w'
},function(err){
})
注意:異步寫文件,如果文件已經(jīng)存在則替換。
打開文件(fs.open)
定義:fs.open(path, flags[, mode], callback)
參數(shù):
- path:文件/文件路徑
- flags:文件打開的行為
- mode:設(shè)置文件模式(權(quán)限),文件創(chuàng)建默認(rèn)權(quán)限為 0666(可讀,可寫)。
- callback:回調(diào)函數(shù)
//打開文件
fs.open('../lianxi/child_process.js','r+',0666,function(err,data){
})
給文件添加數(shù)據(jù)(fs.appendFile)
定義:fs.appendFile(filename, data[, options], callback)
參數(shù):
- filename:{String}
- data:{String | Buffer}
- options:{Object}
encoding {String | Null} 默認(rèn) = 'utf8'
mode {Number} 默認(rèn) = 438 (aka 0666 in Octal)
flag {String} 默認(rèn) = 'a'
- callback {Function}
//給文件添加數(shù)據(jù)
fs.appendFile('../lianxi/child_process.js', '異步添加的字符串或buffer', {
encoding:'utf8',
mode:438,
flag:'a'
}, function(err){
});
注意:異步的給文件添加數(shù)據(jù),如果文件不存在,就會(huì)創(chuàng)建一個(gè)文件。
刪除文件(fs.unlink)
定義:fs.unlink(path, callback)
var fs = require('fs');
fs.unlink('./t/index.html',function (err) {
if(err) throw err;
console.log('成功')
})
創(chuàng)建文件(fs.open)
定義:fs.open(path, flags[, mode], callback)
也可以使用fs.open創(chuàng)建文件。
fs.open("test.txt", "w",function (err) {
});
刪除文件夾(fs.rmdir)
定義:fs.rmdir(path, callback)
fs.rmdir('./t/a',function (err) {
if(err) throw err;
console.log('成功')
})
創(chuàng)建文件夾(fs.mkdir)
定義:fs.mkdir(path[, mode], callback)
參數(shù):mode 默認(rèn)是 to 0777.
fs.mkdir('./t/a',0777,function (err) {
if(err) throw err;
console.log('成功')
})
文件監(jiān)聽(fs.watch fs.watchFile)
定義:fs.watch(filename[, options][, listener])
定義:fs.watchFile(filename[, options], listener)
fs.watch('test.js', function (event, filename) {
});
fs.watchFile('test.js', function(curr, prev){
});
flags
| Flag | 描述 |
|---|---|
| r | 以讀取模式打開文件。如果文件不存在拋出異常。 |
| r+ | 以讀寫模式打開文件。如果文件不存在拋出異常。 |
| rs | 以同步的方式讀取文件。 |
| rs+ | 以同步的方式讀取和寫入文件。 |
| w | 以寫入模式打開文件,如果文件不存在則創(chuàng)建。 |
| wx | 類似 'w',但是如果文件路徑存在,則文件寫入失敗。 |
| w+ | 以讀寫模式打開文件,如果文件不存在則創(chuàng)建。 |
| wx+ | 類似 'w+', 但是如果文件路徑存在,則文件讀寫失敗。 |
| a | 以追加模式打開文件,如果文件不存在則創(chuàng)建。 |
| ax | 類似 'a', 但是如果文件路徑存在,則文件追加失敗。 |
| a+ | 以讀取追加模式打開文件,如果文件不存在則創(chuàng)建。 |
| ax+ | 類似 'a+', 但是如果文件路徑存在,則文件讀取追加失敗。 |
以上所述是小編給大家介紹的NodeJs的fs讀寫刪除移動(dòng)監(jiān)聽,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法示例
fs-extra模塊是基于fs?的文件操作相關(guān)工具庫,封裝了一些fs實(shí)現(xiàn)起來相對(duì)復(fù)雜的工具,下面這篇文章主要給大家介紹了關(guān)于Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法的相關(guān)資料,需要的朋友可以參考下2024-06-06
nodejs配置express服務(wù)器運(yùn)行自動(dòng)打開瀏覽器詳細(xì)步驟
在nodejs中使用express來搭建框架可以說是非常的簡單方便,下面這篇文章主要給大家介紹了關(guān)于nodejs配置express服務(wù)器運(yùn)行自動(dòng)打開瀏覽器的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
node以及npm版本不對(duì)應(yīng)出錯(cuò)的完美解決方法
最近項(xiàng)目用到了node和npm,查看一下當(dāng)前版本,發(fā)現(xiàn)有報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于node以及npm版本不對(duì)應(yīng)出錯(cuò)的完美解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
node中短信api實(shí)現(xiàn)驗(yàn)證碼登錄的示例代碼
這篇文章主要介紹了node中短信api實(shí)現(xiàn)驗(yàn)證碼登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Node.js項(xiàng)目依賴問題的詳細(xì)解決步驟
在現(xiàn)代前端開發(fā)中,Node.js 和 npm 是不可或缺的工具,然而,隨著項(xiàng)目的迭代和依賴包的更新,我們常常會(huì)遇到依賴沖突、構(gòu)建失敗等問題,本文將通過一個(gè)實(shí)際案例,詳細(xì)講解如何解決 Node.js 項(xiàng)目中的依賴問題,包括升級(jí) Node.js 和 npm、替換過時(shí)的依賴包、修復(fù)構(gòu)建錯(cuò)誤等2025-02-02

