NodeJs之fs的讀寫刪移監塊

來源:互聯網
上載者:User

標籤:node js

    

NodeJs版本:4.4.4

fs

檔案系統模組是一個封裝了標準的 POSIX 檔案 I/O 操作的集合。Node.js 檔案系統(fs 模組)模組中的方法均有非同步和同步版本。

圖片的複製與粘貼

建立一個可讀流與一個寫入流。通過管道pipe

var fileReadStream = fs.createReadStream(sourcePath);var fileWriteStream = fs.createWriteStream(targetPath);fileReadStream.pipe(fileWriteStream);//監聽關閉事件得知執行完成fileWriteStream.on(‘close‘, function() {    console.log(‘移動成功!‘);         })
讀檔案(fs.readFile)

定義:fs.readFile(filename[, options], callback)

參數:

  • filename:{String} 檔案名稱/檔案路徑

  • options:{Object} 選擇性參數

    • encoding:{String | Null} 預設 = null 編碼方式

    • flag:{String} 預設 = ‘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);});

這裡讀取檔案如果不設定編碼方式,讀取的檔案就是以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 ... >

設定為utf-8後,返回的就是字串的形式。如下:
var child_process = require(‘child_process‘);...

寫檔案(fs.writeFile)

定義:fs.writeFile(filename, data[, options], callback)

參數:

  • filename:{String}

  • data:{String | Buffer}

  • options:{Object}

    • encoding:{String | Null} 預設 = ‘utf8‘

    • mode:{Number} 預設 = 438 (aka 0666 in Octal)

    • flag:{String} 預設 = ‘w‘

  • callback {Function}

//寫入檔案fs.writeFile(‘../lianxi/child_process.js‘,‘[zqz]要寫入的資料字串或者buffer‘,{    encoding:‘utf8‘,    mode:438,    flag:‘w‘},function(err){})

650) this.width=650;" src="http://images2015.cnblogs.com/blog/743207/201701/743207-20170112180946760-1632394408.png" style="border:0px;" alt="743207-20170112180946760-1632394408.png" />

注意:非同步寫檔案,如果檔案已經存在則替換。

開啟檔案(fs.open)

定義:fs.open(path, flags[, mode], callback)

參數:

  • path:檔案/檔案路徑

  • flags:檔案開啟的行為

  • mode:設定檔案模式(許可權),檔案建立預設許可權為 0666(可讀,可寫)。

  • callback:回呼函數

//開啟檔案fs.open(‘../lianxi/child_process.js‘,‘r+‘,0666,function(err,data){    })
給檔案添加資料(fs.appendFile)

定義:fs.appendFile(filename, data[, options], callback)

參數:

  • filename:{String}

  • data:{String | Buffer}

  • options:{Object}

    • encoding {String | Null} 預設 = ‘utf8‘

    • mode {Number} 預設 = 438 (aka 0666 in Octal)

    • flag {String} 預設 = ‘a‘

  • callback {Function}

//給檔案添加資料fs.appendFile(‘../lianxi/child_process.js‘, ‘非同步添加的字串或buffer‘, {    encoding:‘utf8‘,    mode:438,    flag:‘a‘}, function(err){});

注意:非同步給檔案添加資料,如果檔案不存在,就會建立一個檔案。

刪除檔案(fs.unlink)

定義:fs.unlink(path, callback)

var fs = require(‘fs‘);fs.unlink(‘./t/index.html‘,function (err) {    if(err) throw err;    console.log(‘成功‘)})
建立檔案(fs.open)

定義:fs.open(path, flags[, mode], callback)

也可以使用fs.open建立檔案。

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(‘成功‘)})
建立檔案夾(fs.mkdir)

定義:fs.mkdir(path[, mode], callback)

參數:mode 預設是 to 0777.

fs.mkdir(‘./t/a‘,0777,function (err) {    if(err) throw err;    console.log(‘成功‘)})
檔案監聽(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 以寫入模式開啟檔案,如果檔案不存在則建立。
wx 類似 ‘w‘,但是如果檔案路徑存在,則檔案寫入失敗。
w+ 以讀寫入模式開啟檔案,如果檔案不存在則建立。
wx+ 類似 ‘w+‘, 但是如果檔案路徑存在,則檔案讀寫失敗。
a 以追加模式開啟檔案,如果檔案不存在則建立。
ax 類似 ‘a‘, 但是如果檔案路徑存在,則檔案追加失敗。
a+ 以讀取追加模式開啟檔案,如果檔案不存在則建立。
ax+ 類似 ‘a+‘, 但是如果檔案路徑存在,則檔案讀取追加失敗。

    

NodeJs之fs的讀寫刪移監塊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.