Penerangan kaedah:
Tulis rentetan ke offset penimbal menggunakan pengekodan yang ditentukan.
Mengembalikan bilangan oktet yang ditulis.
Jika Penampan tidak mempunyai ruang yang mencukupi untuk memuatkan keseluruhan rentetan, maka hanya bahagian rentetan itu akan ditulis.
Tatabahasa:
buffer.write(rentetan, [offset], [panjang], [pengekodan])
Terima parameter:
String rentetan, data yang ditulis pada penimbal.
nombor offet, pilihan, lalai 0. Lokasi tempat data ditulis ke penimbal.
panjang Nombor, pilihan, lalai: buffer.length – mengimbangi, panjang data yang akan ditulis
pengekodan Rentetan, format pengekodan yang akan digunakan, pilihan, lalai ialah "utf8".
Contoh:
buf = Penampan baharu(256);
len = buf.write('u00bd u00bc = u00be', 0);
console.log(len " bytes: " buf.toString('utf8', 0, len));
Kod sumber:
Buffer.prototype.write = fungsi(rentetan, offset, panjang, pengekodan) {
// benarkan tulis(rentetan, pengekodan)
if (util.isString(offset) && util.isUndefined(panjang)) {
pengekodan = offset;
offset = 0;
// benarkan tulis(rentetan, offset [, panjang], pengekodan)
} lain jika (isFinite(offset)) {
offset = ~~offset;
jika (adalahTerhad(panjang)) {
panjang = ~~panjang;
} lain {
pengekodan = panjang;
panjang = tidak ditentukan;
}
// Tulisan warisan XXX(rentetan, pengekodan, offset, panjang) - alih keluar dalam v0.13
} lain {
jika (!writeWarned) {
jika (process.throwDeprecation)
buang Ralat baharu(writeMsg);
else if (process.traceDeprecation)
console.trace(writeMsg);
lain
console.error(writeMsg);
writeWarned = benar;
}
var swap = pengekodan;
pengekodan = offset;
offset = ~~panjang;
panjang = swap;
}
var baki = this.length - offset;
if (util.isUndefined(length) || panjang > baki)
panjang = baki;
pengekodan = !!pengekodan ? (pengekodan '').toLowerCase() : 'utf8';
jika (rentetan.panjang > 0 && (panjang < 0 || mengimbangi < 0))
buang RangeError baharu('percubaan untuk menulis melebihi had penampan');
var ret;
suis (pengekodan) {
kes 'hex':
ret = this.hexWrite(rentetan, offset, panjang);
rehat;
kes 'utf8':
kes 'utf-8':
ret = this.utf8Write(rentetan, offset, panjang);
rehat;
kes 'ascii':
ret = this.asciiWrite(rentetan, offset, panjang);
rehat;
kes 'binari':
ret = this.binaryWrite(rentetan, offset, panjang);
rehat;
kes 'base64':
// Amaran: maxLength tidak diambil kira dalam base64Write
ret = this.base64Write(rentetan, offset, panjang);
rehat;
kes 'ucs2':
kes 'ucs-2':
kes 'utf16le':
kes 'utf-16le':
ret = this.ucs2Write(rentetan, offset, panjang);
rehat;
lalai:
buang TypeError baharu('Pengekodan tidak diketahui: ' pengekodan);
}
pulang ret;
};