node基礎 檔案系統 檔案寫操作

2022-02-26 20:36:12 字數 3774 閱讀 9638

檔案操作頻率最高的就是讀跟寫。nodejs的檔案的讀取api在《node基礎-檔案系統-讀取檔案》裡已經簡單介紹過,本文就簡單介紹下nodejs的檔案寫api。

nodejs的檔案操作均提供了同步、非同步兩種方式,寫操作也是同樣的,常用的兩個介面為fs.writefile(非同步)、fs.writefilesync(同步),下面就來看看他們的使用以及區別。

先來看下api說明

/*

* * 往檔案裡非同步寫資料,寫入的內容可以是字串,也可以是二進位制資料。

* 如果檔案不存在,則建立;如果檔案已存在,那麼內容會被覆蓋

* @param filename 檔名

* @param data 要往檔案裡寫的內容,可以是字串,也可以是二進位制資料。當為二進位制資料時候,options.encoding 會被忽略

* @param [options]

* @param options.encoding 編碼,預設是utf8

* @param options.mode=438 模式

* @param options.flag=w 寫檔案的模式

* @param callback **方法 */

fs.writefile(filename, data, [options], callback)

接下來我們來看看實際例子,首先,需要引入fs,下面為節省篇幅就不再貼這行**了

var fs = require('fs');

往乙個不存在的檔案裡寫內容,則會先建立該檔案,再往裡面寫內容

var noneexistfilename = ['async_create.', new date()-0, '.txt'].join('');

fs.writefile(noneexistfilename, '檔案不存在,則建立', function

(err));

如果該檔案已存在,則原有檔案內容會北覆蓋

fs.writefile('async_exists.txt', '檔案已存在,則覆蓋內容 -- '+(new date()-0), function

(err));

options.flag 設定為 'a' 時,則會將寫模式變為追加內容

fs.writefile('async_add.txt', '\n檔案已存在,並追加內容 -- '+(new date()-0), , 

function

(err));

寫檔案的同步版本,同樣先來看下api說明,你會發現跟fs.writefile 沒啥區別,就是少了個**

/*

* * 檔案同步寫介面,是fs.writefile的同步版本,引數也差不多

* @param filename 檔名

* @param data 要往檔案裡寫的內容,可以是字串,也可以是二進位制資料。當為二進位制資料時候,options.encoding 會被忽略

* @param [options]

* @param options.encoding 編碼,預設是utf8

* @param options.mode=438 模式

* @param options.flag=w 寫檔案的模式 */

fs.writefilesync(filename, data, [options])

下面我們看下具體例子

//

case 1:往不存在的檔案裡寫內容,則建立該檔案

var noneexistfilename = ['sync_create.', new date()-0, '.txt'].join('');

fs.writefile(noneexistfilename, '檔案不存在,則建立');

fs.writefile('sync_exists.txt', '檔案已存在,則覆蓋內容 -- '+(new date()-0));

fs.writefile('sync_add.txt', '\n檔案已存在,並追加內容 -- '+(new date()-0), );

/*

* * 檔案寫入demo,by 程式猿小卡 */

var fs = require('fs');/**

* 往檔案裡非同步寫資料,寫入的內容可以是字串,也可以是二進位制資料。

* 如果檔案不存在,則建立;如果檔案已存在,那麼內容會被覆蓋

* @param filename 檔名

* @param data 要往檔案裡寫的內容,可以是字串,也可以是二進位制資料。當為二進位制資料時候,options.encoding 會被忽略

* @param [options]

* @param options.encoding 編碼,預設是utf8

* @param options.mode=438 模式

* @param options.flag=w 寫檔案的模式

* @param callback **方法 */

data, [options], callback)

//case 1:往不存在的檔案裡寫內容,則建立該檔案

var noneexistfilename = ['async_create.', new date()-0, '.txt'].join('');

fs.writefile(noneexistfilename, '檔案不存在,則建立', function

(err));

//case 2:往存在的檔案裡寫內容,原有內容被覆蓋

fs.writefile('async_exists.txt', '檔案已存在,則覆蓋內容 -- '+(new date()-0), function

(err));

//case 3:往已經存在的檔案裡追加內容

fs.writefile('async_add.txt', '\n檔案已存在,並追加內容 -- '+(new date()-0), ,

function

(err));/**

* 檔案同步寫介面,是fs.writefile的同步版本,引數也差不多

* @param filename 檔名

* @param data 要往檔案裡寫的內容,可以是字串,也可以是二進位制資料。當為二進位制資料時候,options.encoding 會被忽略

* @param [options]

* @param options.encoding 編碼,預設是utf8

* @param options.mode=438 模式

* @param options.flag=w 寫檔案的模式 */

data, [options])

//case 1:往不存在的檔案裡寫內容,則建立該檔案

var noneexistfilename = ['sync_create.', new date()-0, '.txt'].join('');

fs.writefile(noneexistfilename, '檔案不存在,則建立');

//case 2:往存在的檔案裡寫內容,原有內容被覆蓋

fs.writefile('sync_exists.txt', '檔案已存在,則覆蓋內容 -- '+(new date()-0));

//case 3:往已經存在的檔案裡追加內容

fs.writefile('sync_add.txt', '\n檔案已存在,並追加內容 -- '+(new date()-0), );

官方文件請點選

本文如有錯漏,請指出 :)

node基礎 檔案系統 檔案讀取

node的檔案讀取主要分為同步讀取 非同步讀取,常用api有fs.readfile fs.readfilesync。還有諸如更底層的fs.read,以及資料流 stream 後面再總結下咯 直接上簡單的demo,看下同步 非同步介面的呼叫時的區別,以及分別對應的異常處理方式。至於api說明,可參考n...

node基礎 檔案系統 檔案讀取

node的檔案讀取主要分為同步讀取 非同步讀取,常用api有fs.readfile fs.readfilesync。還有諸如更底層的fs.read,以及資料流 stream 後面再總結下咯 直接上簡單的demo,看下同步 非同步介面的呼叫時的區別,以及分別對應的異常處理方式。至於api說明,可參考n...

node檔案系統

node中有乙個內建模組 叫做 fs模組 fs file system 檔案系統 可以對本地檔案執行增刪改查操作 varfs require fs 匯入模組 增 writefile 如果檔案存在就寫入資料覆蓋原有資料,如果不存在就建立並寫入 fs.writefile a.txt 床前明月光,func...