多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

nodejs教程

Node.js 文件系統

閱讀 (2163)

Node.js 文件系統

Node.js 文件系統封裝在 fs 模塊是中,它提供了文件的讀取、寫入、更名、刪除、遍歷目錄、鏈接等POSIX 文件系統操作。

與其他模塊不同的是,fs 模塊中所有的操作都提供了異步的和 同步的兩個版本,例如讀取文件內容的函數有異步的 fs.readFile() 和同步的 fs.readFileSync()。我們以幾個函數為代表,介紹 fs 常用的功能,并列出 fs 所有函數 的定義和功能。


fs.readFile

Node.js讀取文件函數語法如下:

fs.readFile(filename,[encoding],[callback(err,data)])
  • filename(必選),表示要讀取的文件名。
  • encoding(可選),表示文件的字符編碼。
  • callback 是回調函數,用于接收文件的內容。

如果不指 定 encoding,則 callback 就是第二個參數?;卣{函數提供兩個參數 err 和 data,err 表 示有沒有錯誤發生,data 是文件內容。如果指定了 encoding,data 是一個解析后的字符 串,否則 data 將會是以 Buffer 形式表示的二進制數據。

例如以下程序,我們從content.txt 中讀取數據,但不指定編碼:

var fs = require('fs'); 
fs.readFile('content.txt', function(err, data) { 
    if(err) { 
        console.error(err); 
  } else{ 
      console.log(data); 
   } 
}); 

假設content.txt 中的內容是UTF-8 編碼的 Text 文本文件示例,運行結果如下:

<Buffer 54 65 78 74 20 e6 96 87 e6 9c ac e6 96 87 e4 bb b6 e7 a4 ba e4 be 8b> 

這個程序以二進制的模式讀取了文件的內容,data 的值是 Buffer 對象。如果我們給

fs.readFile 的 encoding 指定編碼:

var fs = require('fs'); 
    fs.readFile('content.txt', 'utf-8', function(err, data) { 
    if (err) { 
       console.error(err); 
  } else { 
     console.log(data); 
   } 
}); 

那么運行結果則是:

Text 文本文件示例

當讀取文件出現錯誤時,err 將會是 Error 對象。如果content.txt 不存在,運行前面 的代碼則會出現以下結果:

{ [Error: ENOENT, no such file or directory 'content.txt'] errno: 34, code: 'ENOENT', 
path: 'content.txt' } 

fs.readFileSync

fs.readFileSync(filename, [encoding])是 fs.readFile 同步的版本。它接受 的參數和 fs.readFile 相同,而讀取到的文件內容會以函數返回值的形式返回。如果有錯 誤發生,fs 將會拋出異常,你需要使用 try 和 catch 捕捉并處理異常。

注意:與同步I/O 函數不同,Node.js 中異步函數大多沒有返回值。


fs.open

fs.open(path, flags, [mode], [callback(err, fd)])是POSIX open 函數的 封裝,與C 語言標準庫中的 fopen 函數類似。它接受兩個必選參數,path 為文件的路徑, flags 可以是以下值。

  • r :以讀取模式打開文件。
  • r+ :以讀寫模式打開文件。
  • w :以寫入模式打開文件,如果文件不存在則創建。
  • w+ :以讀寫模式打開文件,如果文件不存在則創建。
  • a :以追加模式打開文件,如果文件不存在則創建。
  • a+ :以讀取追加模式打開文件,如果文件不存在則創建

fs.read

fs.read語法格式如下:

fs.read(fd, buffer, offset, length, position, [callback(err, bytesRead, buffer)])

參數說明:

  • fd: 讀取數據并寫入 buffer 指向的緩沖區對象。
  • offset: 是buffer 的寫入偏移量。
  • length: 是要從文件中讀取的字節數。
  • position: 是文件讀取的起始位置,如果 position 的值為 null,則會從當前文件指針的位置讀取。
  • callback:回調函數傳遞bytesRead 和 buffer,分別表示讀取的字節數和緩沖區對象。

以下是一個使用 fs.open 和 fs.read 的示例。

var fs = require('fs'); 
fs.open('content.txt', 'r', function(err, fd) { 
    if(err) { 
        console.error(err); 
      return; 
  } 
    var buf = newBuffer(8); 
  fs.read(fd, buf, 0, 8, null, function(err, bytesRead, buffer) { 
      if(err) { 
            console.error(err); 
          return; 
      } 
        console.log('bytesRead: ' + bytesRead); 
        console.log(buffer); 
 }) 
}); 

運行結果是:

bytesRead: 8 
<Buffer 54 65 78 74 20 e6 96 87> 

一般來說,除非必要,否則不要使用這種方式讀取文件,因為它要求你手動管理緩沖區 和文件指針,尤其是在你不知道文件大小的時候,這將會是一件很麻煩的事情。


fs 模塊函數表

nodejs-file1

nodejs-file2

更多詳情可點擊查看:http://nodejs.org/api/fs.html

關閉
程序員人生
主站蜘蛛池模板: 在线视频一区二区三区 | 亚洲欧美日韩久久一区 | 亚洲爆乳无码一区二区三区 | 亚洲精品一区二区三区网址 | 自拍偷拍另类 | 男18视频在线观看 | 日韩欧美~中文字幕 | 日本综合视频 | 亚洲精品一区二区三区不卡 | 最近中文字幕更新免费 | 一级做a爰片性色毛片黄书 一级做a爰片性色毛片男 | 国产精品久久久久久久久免费观看 | 在线视频久久 | 日本最新伦中文字幕 | 俺去俺来也www色官网免费的 | 国产a级一级久久毛片 | jzz欧美| 亚洲黄色在线视频 | 国产精品久久久久久久久久久不卡 | 五月免费视频 | 亚洲一区二区三区四区在线观看 | 免费一级毛片免费播放 | 爱爱视频网站免费 | 黄影院 | 乌克兰xxxx| 老司机福利免费 | 欧美日韩性视频一区二区三区 | 免费高清黄色 | 2022国内精品免费福利视频 | 视频二区中文字幕 | 国产综合久久久久久 | 精品伊人久久久久网站 | japanese日本护士 | 国产高清乱码无卡女大生 | 欧美日韩乱码毛片免费观看 | 黑人猛操| 男女爽爽无遮挡午夜视频在线观看 | 亚洲成年网站在线777 | 最近最新视频中文字幕4 | 欧美网站在线看 | 午夜5060|