1. 程式人生 > >Node核心模組之fs模組

Node核心模組之fs模組

一、同步與非同步

檔案I/O是NodeJS的核心模組之一,主要歲檔案進行讀寫操作。fs對檔案的載入分為兩種:同步和非同步

  • 同步方式:執行完當前操作並返回結果後,才能繼續執行後續程式碼
var fs = require('fs');
fs.unlinkSync('/targetUrl');
  • 非同步方式:採用回撥函式的方式,接收返回結果,可以立即執行後續的程式碼;回撥函式的第一個引數是異常引數,如果方法成功執行,那麼這個引數為“null”局歐哲“undefined”
var fs require('fs');
fs.unlink('/targetUrl',function(err)
{
if(err) { throw err; } });
  • 非同步與同步載入的對比
var fs = require('fs');
fs.readFile('test.txt','utf-8',function(err,data) {
    if(err) {
        throw err;
    } else {
       console.log(data); 
    }
});
console.log('非同步載入');

執行結果為: 非同步載入
data of test.txt

如果是同步執行,那麼執行結果的順序應該是相反的。

二、讀寫檔案

1.eadFile讀取檔案

fs.readFile(fileName[,options],callback);

fileName為要讀取的檔名稱;
options是可選引數,是一個物件格式,用於指定檔案編碼(encoding)和操作方式(flag,例如:r代表讀取檔案,w代表寫入檔案,a代表追加檔案)

fs.readFile('/test.txt','utf-8',function(err,data) {
    //或者{encoding:'utf-8'}
    if(err) {
        console.log(err);
    }
    console.
log(data); });

2.writeFile寫入檔案
writeFile與readFile差不多,語法規則為

fs.writeFile(fileName,data[,options],callback);

其中,data為寫入檔案的資料內容,callback為寫入後的回撥函式。

以追加的方式寫入檔案
fs.writeFile('/rest.txt','data add to file',{'flag': 'a'},function(err) {
    if(err) {
        console.log(new Error('error'));
    }
});

對寫入的檔案進行讀取

fs.readFile('/test.txt','utf-8',function(err,data) {
    if(err) {
        console.log(new Error('read err'));
    }
    console.log(data);
});

3.read和write讀寫檔案
除了使用readFile和writeFile讀寫檔案之外,還可以使用read和write來對檔案進行讀寫操作。

  • 開啟檔案 fs.open()
fs.open(path,flag[,mode],callback)

path是檔案路徑;
flags是開啟檔案的方式;可以是:
r:只讀方式開啟文件
r+:讀寫方式開啟文件
rs:同步模式下,以只讀方式開啟文件

mode:檔案許可權(該檔案已經存在的條件下),預設值為“0666”,即有可讀寫功能。

  • 關閉檔案 fs.close()
fs.close(fd[,callback])

fd為所開啟檔案的描述符

  • 讀取檔案 fs.read()
fs.read(fd,buffer,offset,length,position,callback)

fd:檔案描述符,必須接收fs.open()方法中的回撥函式所返回的第二個引數;
buffer:存放讀取到的資料的Buffer物件;
offset:指定向buffer中存放資料的起始位置;
length:指定讀取檔案的位元組數;
position:指定在檔案中讀取內容的起始位置;
callback:回撥函式

fs.open('/test.txt','r'.function(err,fd) {
    if(err) {
        throw err;
    }
    var buffer = new Buffer(255);
    //讀取檔案
    fs.read(fd,buffer,0,10,0,function(err,byteRead,buffer) {
        if(err) {
            throw err;
        }
        console.log(byteRead,buffer.slice(0,byteRead).toString());
        fs.close(fd);    //關閉檔案
    });
});

callback回撥函式的引數:
err:異常
byteRead:是從檔案中讀取內容的實際位元組數;
buffer:被讀取的快取區物件;

  • 寫入檔案 fs.write()
fs.write(fd,buffer,offset,length,position,callback);

基本引數與read()函式差不多,其中,buffer為要寫進檔案的內容

fs.open('/test.txt','r'.function(err,fd) {
    if(err) {
        throw err;
    }
    var buffer = new Buffer('the information add into file');
    //讀取檔案
    fs.write(fd,buffer,0,10,0,function(err,byteRead,buffer) {
        if(err) {
            throw err;
        }
        console.log(byteRead,buffer.slice(0,byteRead).toString());
        fs.close(fd);    //關閉檔案
    });
});
  • 追加寫入 fs.appendFile()
fs.appendFile('test.txt','data to addto file',function(err) {
    if(err) {
        throw err;
    }
});

相關推薦

Node核心模組fs模組

一、同步與非同步 檔案I/O是NodeJS的核心模組之一,主要歲檔案進行讀寫操作。fs對檔案的載入分為兩種:同步和非同步 同步方式:執行完當前操作並返回結果後,才能繼續執行後續程式碼 var fs = require('fs'); fs.unlin

node.jsfs模組的功能

node.js 的 api 都挺好用的。 var http = require("http"); var fs = require("fs"); var server = http.createServer(function(req,res){ //不處理小圖示

Node fs模組 API詳解

 原文出自:https://www.pandashen.com 本文所有程式碼git地址:https://gitee.com/vr2/node/tree/master/fs fs 概述   在 NodeJS 中,所有與檔案操作都是通過 fs 核心模組來實現的,包括檔案目錄的建

Node fs模組 運用

 fs.stat 檢測是檔案還是目錄     fs.mkdir 建立目錄      fs.writeFile 建立寫入檔案 *   fs.appendFile 追加檔案        fs.readFile 讀取檔

Node.js學習筆記--fs模組

1. fs.readFile(path,callback(err,data)):讀取檔案有兩個引數,第一個是檔案的完整路徑,當前目錄寫./(必須要寫,為了相容Windows系統和Linux系統),第二個引數是回撥函式,表示檔案讀取完成之後做的事情//可以證明事件環機制 var

常用模組time模組

import time #獲取當前的時間戳 浮點型 floatStamp = time.time() print(floatStamp) #獲取當前的時間戳 整型 intStamp = int(time.time()) print(intStamp) #從返回的浮點數的時間戳轉成時間元組 loca

python常用模組time模組

python中的time和datetime模組是時間方面的模組 time模組中時間表現的格式主要有三種:   1、timestamp:時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量   2、struct_time:時間元組,共有九個元素組。   3、format tim

模組time模組

#  import time # time.time()   檢視從1970年到現在過去了多少秒 #   time.localtime()  #檢視當前時間的年月日  這個時間是根據本地的作業系統的時間得到的  &n

模組os模組

    #通過以上’os.getcwd()‘可以檢視當前python直譯器所執行的環境的位置     #通過’os.listdir()‘可以檢視當前目錄下的所有檔名和目錄名字   #’os.remove('檔案或者資料夾名字')‘

【Ansible學習】- 常用檔案操作模組copy模組

簡介 copy模組用於將本地或遠端機器上的檔案拷貝到遠端主機上。 模組引數 名稱 必選 預設值 可選值 備註 backup no no

系統性能資訊模組psutil模組

一、psutil模組介紹 概要 plutil(程序和系統實用程式)是一個跨平臺的庫,用於在Python中檢索有關執行程序和系統資源利用率(CPU,記憶體,磁碟,網路)的資訊。它主要用於系統監視,分析和限制系統資源及執行程序的管理。它實現了Linux命令工具提供的許多功能,例如:ps,top

python模組collections模組

計數器 Counter 計數元素迭代器 elements() 計數物件拷貝 copy() 計數物件清空 clear() from collections import Counter #import collections d = Counter("abdadakdab

python模組logging模組

1. 低配版 1 # 指定顯示資訊格式 2 import logging 3 logging.basicConfig( 4 level=20, # 設定顯示或寫入的起始級別 5 format="%(asctime)s %(filename)s [line:%(lineno)

python 模組 sys模組

python之sys模組詳解sys模組功能多,我們這裡介紹一些比較實用的功能,相信你會喜歡的,和我一起走進python的模組吧!sys模組的常見函式列表sys.argv: 實現從程式外部向程式傳遞引數。sys.exit([arg]): 程式中間的退出,arg=0為正常退出。s

NodeJs內建模組HTTP模組

一、HTTP協議與流 1.客戶端上的 HTTP 請求 ClientRequest的例項 ——可寫流 一般由http.request()方法建立返回 http.request(options[, callback]) 引數說明: options

Node.js學習(第二章:node核心模塊--fs

倉庫 mage strong 寫上 前言 png pub html 很多 前言 Node.js中賦予了JavaScript很多在瀏覽器中沒有的能力,譬如:文件讀寫,創建http服務器等等,今天我們就來看看在node中怎樣用JavaScript進行文件的讀寫操作。 讀文件

node總結Web 模組瞭解下

Web伺服器一般指網站伺服器,是指駐留於因特網上某種型別計算機的程式,Web伺服器的基本功能就是提供Web資訊瀏覽服務。它只需支援HTTP協議、HTML文件格式及URL,與客戶端的網路瀏覽器配合。並且大多數 web 伺服器都支援服務端的指令碼語言(php、python、ruby)等,並通過指令碼

node總結工具模組(Domain 模組

Node.js Domain(域) 簡化非同步程式碼的異常處理,可以捕捉處理try catch無法捕捉的異常,來看下引入 Domain 模組的語法格式: var domain = require("domain") domain模組,把處理多個不同的IO的操作作為一個組。註冊事件和回撥到

node總結工具模組(Net 模組

Node.js Net 模組提供了一些用於底層的網路通訊的小工具,包含了建立伺服器/客戶端的方法,來看下引入該模組的語法格式: var net = require("net") 來看下net模組中的方法: 序號 方法 & 描述

node總結工具模組(Path 模組

Node.js path 模組提供了一些用於處理檔案路徑的小工具,來看下引入該模組的語法格式: var path = require("path") 來看下方法: 序號 方法 & 描述 1 path.nor