メソッドの説明:
ファイルへの書き込み (ファイル記述子による) この関数は fs.writeFile() に似ていますが、このメソッドはより低レベルの操作を提供します。実際のアプリケーションでは、より多くの fs.writeFile() を使用することをお勧めします。 。
このメソッドには 2 つの形式があります:
1. fs.write(fd, バッファ, オフセット, 長さ[, 位置], [コールバック(err, bytesWritten, バッファ)])
この書き方では、バッファをファイルに書き込みます (ファイル記述子 fd に基づいてファイルを見つけます)。
2. fs.write(fd, data[,position[, エンコーディング]], [callback(err, write, string)])
この書き込み方法では、データをファイルに書き込みます (ファイル記述子 fd に基づいてファイルを見つけます)。データがバッファ インスタンスではない場合、値は文字列にキャストされます。
文法:
fs.write(fd, バッファ, オフセット, 長さ[, 位置], [コールバック(err, bytesWritten, バッファ)])
fs.write(fd, データ[, 位置[, エンコーディング]], [コールバック(エラー, 書き込まれた, 文字列)])
このメソッドは fs モジュールに属しているため、使用する前に fs モジュールを導入する必要があります (var fs= require(“fs”) )
パラメータを受信します:
fd ファイル記述子。
buffer データが書き込まれるバッファー。バッファ サイズを 8 の倍数に設定すると、より効率的になります。
offset バッファに書き込まれるオフセット
length (integer) 読み取られるファイルの長さをバイト単位で指定します
position (整数) ファイル読み込みの開始位置を指定します。この項目が null の場合、現在のファイル ポインターの位置からデータが読み込まれます。
callback コールバックは 3 つのパラメータ、err、bytesRead、buffer
を渡します。
· エラー例外
· bytesRead: 読み取られたバイト数
·buffer: バッファオブジェクト
2 番目の形式:
encoding 文字エンコーディング
コールバック
· エラー例外
・write ファイルに書き込む文字数を指定します。
· 返された文字列バッファ
例:
//fs.write(fd, バッファ, オフセット, 長さ[, 位置], [コールバック(err, bytesWritten, バッファ)])
//実行結果: bytesWritten = 8、buffer =
var fs = require('fs');
fs.open('content.txt', 'a', function(err,fd){
if(err){
エラーをスローします;
}
var data = '123123123 hello world';
var buf = 新しいバッファ(8);
fs.write(fd, buf, 0, 8, 0, function(err, bytesWritten,buffer){
if(err){
エラーをスローします;
}
console.log(bytesWritten);
console.log(バッファ);
fs.close(fd,function(err){
if(err){
エラーをスローします;
}
console.log('ファイルが閉じられました');
})
})
})
//fs.write(fd, データ[, 位置[, エンコーディング]], [コールバック(err, 書き込まれた, 文字列)])
//実行結果: write = 21, string =
var fs = require('fs');
fs.open('content.txt', 'a', function(err,fd){
if(err){
エラーをスローします;
}
var data = '123123123 hello world';
fs.write(fd, データ, 0, 'utf-8', function(err, 書き込まれた, 文字列){
if(err){
エラーをスローします;
}
console.log(書き込み);
console.log(文字列);
fs.close(fd,function(err){
if(err){
エラーをスローします;
}
console.log('ファイルが閉じられました');
})
})
})
ソースコード:
// 使用法:
// fs.write(fd, バッファ, オフセット, 長さ[, 位置], コールバック);
// または
// fs.write(fd, string[,position[,coding]], callback);
fs.write = function(fd, バッファ, オフセット, 長さ, 位置, コールバック) {
if (util.isBuffer(buffer)) {
// 位置が渡されない場合は null
とみなされます
if (util.isFunction(position)) {
コールバック = 位置;
位置 = null;
}
callback = mightCallback(callback);
var ラッパー = 関数(エラー、書き込まれました) {
// すぐに GC されないように、バッファへの参照を保持します。
callback(err、書き込まれました || 0、バッファ);
};
return binding.writeBuffer(fd, バッファ, オフセット, 長さ, 位置, ラッパー);
}
if (util.isString(buffer))
バッファ = '';
if (!util.isFunction(position)) {
if (util.isFunction(offset)) {
位置 = オフセット;
オフセット = null;
} else {
位置 = 長さ;
}
長さ = 'utf8';
}
コールバック = mightCallback(位置);
位置 = 関数(エラー、書き込まれました) {
// 文字列が外部の場合に備えて文字列への参照を保持します
callback(err、書き込まれました || 0、バッファ);
};
return binding.writeString(fd, バッファ, オフセット, 長さ, 位置);
};