وصف الطريقة:
اقرأ بيانات الملف وفقًا لمواصف الملف المحدد FD واكتب إلى الكائن المخزن المؤقت الذي أشار إليه المخزن المؤقت. يوفر واجهة أساسية أكثر من القراءة.
لا ينصح هذه الطريقة بقراءة الملفات بشكل عام ، لأنها تتطلب منك إدارة المخازن المؤقتة ومؤشرات الملفات يدويًا ، خاصةً عندما لا تعرف حجم الملف ، والذي يمكن أن يكون أمرًا مزعجًا للغاية.
القواعد:
نسخة الكود كما يلي:
FS.Read (FD ، Buffer ، Offset ، الطول ، الموضع ، [رد الاتصال (ERR ، BYTESREAD ، BUMITER)]))
نظرًا لأن هذه الطريقة تنتمي إلى وحدة FS ، فمن الضروري تقديم وحدة FS قبل الاستخدام (var fs = require ("fs"))
تلقي المعلمات:
واصف ملف FS
المخزن المؤقت ، سيتم كتابة البيانات.
إزاحة اكتب لإزاحة المخزن المؤقت
الطول (عدد صحيح) يحدد طول بايت قراءة الملف
الموضع (عدد صحيح) يحدد موضع البداية لقراءة الملف. إذا كان هذا العنصر فارغًا ، فسيتم قراءة البيانات من موضع مؤشر الملف الحالي.
يمر رد الاتصال بثلاث معلمات ، err ، bytesread ، و buffer
・ استثناء خطأ
bytesread: عدد البايتات قراءة
・ المخزن المؤقت: كائن عازلة
مثال:
نسخة الكود كما يلي:
var fs = require ('fs') ؛
fs.open ('123.txt' ، 'r' ، function (err ، fd) {
إذا (خطأ) {
console.error (err) ؛
يعود؛
}
var buf = New Buffer (8) ؛
fs.read (fd ، buf ، 0 ، 8 ، null ، function (err ، bytesread ، buffer) {
إذا (خطأ) {
console.log (err) ؛
يعود؛
}
console.log ('bytesread' +bytesread) ؛
console.log (المخزن المؤقت) ؛
})
})
رمز المصدر:
نسخة الكود كما يلي:
fs.read = function (fd ، buffer ، الإزاحة ، الطول ، الموضع ، رد الاتصال) {
if (! util.isbuffer (buffer)) {
// واجهة سلسلة Legacy (FD ، الطول ، الموضع ، الترميز ، رد الاتصال)
var cb = وسيطات [4] ،
الترميز = الحجج [3] ؛
التأكيد (الترميز) ؛
الموضع = الحجج [2] ؛
الطول = الحجج [1] ؛
العازلة = عازلة جديدة (طول) ؛
الإزاحة = 0 ؛
رد الاتصال = دالة (err ، bytesread) {
إذا (! CB) العودة ؛
var str = (bytesread> 0)؟ buffer.toString (الترميز ، 0 ، bytesread): '' ؛
(CB) (err ، str ، bytesread) ؛
} ؛
}
غلاف الوظيفة (err ، bytesread) {
// احتفظ بالإشارة إلى المخزن المؤقت بحيث لا يمكن أن يتم Gc'ed في وقت مبكر جدًا.
callback && callback (err ، bytesread || 0 ، buffer) ؛
}
Binding.Read (FD ، العازلة ، الإزاحة ، الطول ، الموضع ، الغلاف) ؛
} ؛