ホームページ  >  記事  >  ウェブフロントエンド  >  node.js_node.js の fs.read メソッドを使用する手順

node.js_node.js の fs.read メソッドを使用する手順

WBOY
WBOYオリジナル
2016-05-16 16:26:111310ブラウズ

メソッドの説明:

指定されたファイル記述子 fd に基づいてファイル データを読み取り、buffer が指すバッファ オブジェクトを書き込みます。 readFile よりも下位レベルのインターフェイスを提供します。

この方法を使用してファイルを読み取ることは、通常は推奨されません。バッファーとファイル ポインターを手動で管理する必要があるためです。特にファイル サイズがわからない場合、これは非常に面倒なことになります。

文法:

コードをコピーします コードは次のとおりです:

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

このメソッドは fs モジュールに属しているため、使用する前に fs モジュールを導入する必要があります (var fs= require(“fs”) )

パラメータを受信します:

fs ファイル記述子

buffer データが書き込まれるバッファー。

offset バッファに書き込まれるオフセット

length (integer) 読み取られるファイルの長さをバイト単位で指定します

position (整数) ファイル読み込みの開始位置を指定します。この項目が null の場合、現在のファイル ポインターの位置からデータが読み込まれます。

callback コールバックは 3 つのパラメータ、err、bytesRead、buffer

を渡します。

· エラー例外

· bytesRead: 読み取られたバイト数

·buffer: バッファオブジェクト

例:

コードをコピーします コードは次のとおりです:

var fs = require('fs');
fs.open('123.txt' , 'r' , function (err,fd){
if(err){
コンソール.エラー(エラー);
}

var buf = 新しいバッファー
; fs.read(fd, buf, 0, 8, null, function(err,bytesRead,buffer){
if(err){
コンソール.ログ(エラー);
}
console.log('bytesRead' bytesRead); コンソール.ログ(バッファ); })
})




ソースコード:

コードをコピーします

コードは次のとおりです: fs.read = function(fd, バッファ, オフセット, 長さ, 位置, コールバック) { if (!util.isBuffer(buffer)) {
// 従来の文字列インターフェイス (fd、長さ、位置、エンコーディング、コールバック)
var cb = 引数[4],
エンコーディング = 引数[3];
assertEncoding(エンコーディング);
位置 = 引数[2];
長さ = 引数[1];
バッファ = 新しいバッファ(長さ);
オフセット = 0;
callback = function(err, bytesRead) {
If (!cb) return;
var str = (bytesRead > 0) ?buffer.toString(encoding, 0, bytesRead) : '';
(cb)(err, str, bytesRead);
};
}
関数ラッパー(err, bytesRead) {
// すぐに GC されないように、バッファへの参照を保持します。
コールバック && コールバック(err, bytesRead || 0, バッファ);
}
binding.read(fd, バッファ, オフセット, 長さ, 位置, ラッパー);
};


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。