وصف الطريقة:
اكتب سلسلة إلى إزاحة المخزن المؤقت باستخدام الترميز المحدد.
إرجاع عدد البايتات الثمانية التي كتبت.
إذا لم يكن لدى المخزن المؤقت مساحة كافية لاستيعاب السلسلة بأكملها ، فسيتم كتابة السلسلة فقط.
القواعد:
نسخة الكود كما يلي:
buffer.write (سلسلة ، [إزاحة] ، [طول] ، [تشفير])
تلقي المعلمات:
سلسلة سلسلة ، البيانات المكتوبة إلى المخزن المؤقت.
رقم العرض ، اختياري ، افتراضي 0. تتم كتابة البيانات إلى موقع المخزن المؤقت.
رقم الطول ، اختياري ، افتراضي: buffer.length إزاحة ، طول البيانات المراد كتابة
سلسلة الترميز ، تنسيق الترميز المطلوب لاستخدامه ، اختياري ، افتراضي هو "UTF8".
مثال:
نسخة الكود كما يلي:
buf = جديد المخزن المؤقت (256) ؛
len = buf.write (' /u00bd + /u00bc = /u00be' ، 0) ؛
console.log (len + "bytes:" + buf.toString ('Utf8' ، 0 ، len)) ؛
رمز المصدر:
نسخة الكود كما يلي:
buffer.prototype.write = دالة (السلسلة ، الإزاحة ، الطول ، الترميز) {
// السماح للكتابة (سلسلة ، تشفير)
if (util.isstring (Offset) && util.isundefined (length)) {
الترميز = الإزاحة ؛
الإزاحة = 0 ؛
// السماح للكتابة (سلسلة ، إزاحة [، طول] ، تشفير)
} آخر إذا (isfinite (إزاحة)) {
الإزاحة = ~~ إزاحة ؛
if (isfinite (طول)) {
الطول = ~~ الطول ؛
} آخر {
الترميز = الطول ؛
الطول = غير محدد ؛
}
// XXX Legacy Write (سلسلة ، تشفير ، إزاحة ، طول) - إزالة في v0.13
} آخر {
if (! writewarned) {
if (process.throwDeprecation)
رمي خطأ جديد (Writemsg) ؛
آخر إذا (process.tracedeprecation)
console.trace (writemsg) ؛
آخر
console.error (writemsg) ؛
WriteWarned = true ؛
}
تبادل var = الترميز ؛
الترميز = الإزاحة ؛
الإزاحة = ~~ الطول ؛
طول = مبادلة ؛
}
var المتبقية = this.length - الإزاحة ؛
if (util.isunded (طول) || الطول> المتبقية)
طول = تبقى ؛
الترميز = !! الترميز؟ (الترميز + '') .ToLowerCase (): 'utf8' ؛
if (string.length> 0 && (طول <0 || إزاحة <0))
رمي New RangeError ('محاولة الكتابة إلى ما وراء الحدود العازلة) ؛
var ret ؛
التبديل (الترميز) {
حالة "سداسية":
ret = this.hexwrite (سلسلة ، إزاحة ، طول) ؛
استراحة؛
حالة "UTF8":
حالة "UTF-8":
ret = this.utf8write (سلسلة ، إزاحة ، طول) ؛
استراحة؛
حالة "ASCII":
ret = this.asciiwrite (سلسلة ، إزاحة ، طول) ؛
استراحة؛
حالة "ثنائي":
ret = this.binaryWrite (سلسلة ، إزاحة ، طول) ؛
استراحة؛
حالة "base64":
// تحذير: MaxLength لم يؤخذ في الاعتبار في Base64Write
ret = this.base64write (سلسلة ، إزاحة ، طول) ؛
استراحة؛
حالة "UCS2":
حالة "UCS-2":
حالة "UTF16LE":
حالة "UTF-16LE":
ret = this.ucs2write (سلسلة ، إزاحة ، طول) ؛
استراحة؛
تقصير:
رمي typeerror جديد ('الترميز غير معروف:' + الترميز) ؛
}
إرجاع العودة ؛
} ؛