使用fs.read讀文件
fs.read()
先介紹fs.open。
fs.open(path,flags,[mode],callback)方法用於打開文件,以便fs.read()讀取。
參數說明:
- path 文件路徑
- flags打開文件的方式
- [mode] 是文件的權限(可行參數,默認值是0666)
- callback 回調函數
flags值及說明如下
r :讀取文件,文件不存在時報錯; r+ :讀取並寫入文件,文件不存在時報錯; rs :以同步方式讀取文件,文件不存在時報錯; rs+ :以同步方式讀取並寫入文件,文件不存在時報錯; w :寫入文件,文件不存在則創建,存在則清空; wx :和w一樣,但是文件存在時會報錯; w+ :讀取並寫入文件,文件不存在則創建,存在則清空; wx+ :和w+一樣,但是文件存在時會報錯; a :以追加方式寫入文件,文件不存在則創建; ax :和a一樣,但是文件存在時會報錯; a+ :讀取並追加寫入文件,文件不存在則創建; ax+ :和a+一樣,但是文件存在時會報錯。
fs.close(fd,[callback])
用於關閉文件,fd是所打開文件的文件描述符。
fs.read(fd,buffer,offset,length,position,callback)接收6個參數。
參數說明:
- fd 文件描述符,必須接收fs.open()方法中的回調函數返回的第二個參數。
- buffer 是存放讀取到的數據的Buffer對象。
- offset 指定 向buffer中存放數據的起始位置。
- length 指定 讀取文件中數據的字節數。
- position 指定 在文件中讀取文件內容的起始位置。
- callback 回調函數,參數如下
- err 用於拋出異常
- bytesRead 從文件中讀取內容的實際字節數。
- buffer 被讀取的緩存區對象。
例子:
var fs = require('fs'); // 引入fs模塊 // 打開文件 fs.open('./text.txt', 'r', function(err, fd) { if (err) { throw err; } console.log('open file success.'); var buffer = new Buffer(255); // 讀取文件 fs.read(fd, buffer, 0, 10, 0, function(err, bytesRead, buffer) { if (err) { throw err; } // 打印出buffer中存入的數據 console.log(bytesRead, buffer.slice(0, bytesRead).toString()); // 關閉文件 fs.close(fd); }); });
運行結果