방법 설명 :
지정된 인코딩을 사용하여 버퍼의 오프셋에 문자열을 쓰십시오.
몇 개의 옥탈 바이트가 작성된 수를 반환합니다.
버퍼에 전체 문자열을 수용 할 수있는 공간이 충분하지 않은 경우 문자열 만 작성됩니다.
문법:
코드 사본은 다음과 같습니다.
buffer.write (문자열, [오프셋], [길이], [인코딩])
매개 변수 수신 :
문자열 문자열, 버퍼에 작성된 데이터.
제안 번호, 선택 사항, 기본값 0. 데이터는 버퍼 위치에 기록됩니다.
길이 번호, 선택 사항, 기본값 : 버퍼. 길이 오프셋, 쓰기 할 데이터 길이
인코딩 문자열, 사용에 필요한 인코딩 형식, 선택 사항, 기본값은 "UTF8"입니다.
예:
코드 사본은 다음과 같습니다.
buf = 새로운 버퍼 (256);
len = buf.write ( ' /u00bd + /u00bc = /u00be', 0);
console.log (len + "bytes :" + buf.tostring ( 'utf8', 0, len));
소스 코드 :
코드 사본은 다음과 같습니다.
buffer.prototype.write = function (문자열, 오프셋, 길이, 인코딩) {
// 쓰기 허용 (문자열, 인코딩)
if (util.isstring (오프셋) && util.isundefined (length)) {
인코딩 = 오프셋;
오프셋 = 0;
// 쓰기 허용 (문자열, 오프셋 [, 길이], 인코딩)
} else if (isfinite (오프셋)) {
오프셋 = ~~ 오프셋;
if (isfinite (길이)) {
길이 = ~~ 길이;
} 또 다른 {
인코딩 = 길이;
길이 = 정의되지 않은;
}
// XXX 레거시 쓰기 (문자열, 인코딩, 오프셋, 길이) -V0.13에서 제거
} 또 다른 {
if (! writewarned) {
if (process.throwDeprecation)
새로운 오류를 던지십시오 (writemsg);
else if (process.traceprecation)
Console.Trace (writemsg);
또 다른
Console.error (writemsg);
writewarned = true;
}
var swap = 인코딩;
인코딩 = 오프셋;
오프셋 = ~~ 길이;
길이 = 스왑;
}
var 나머지 = this.length- 오프셋;
if (util.isundefined (길이) || 길이> 나머지)
길이 = 남아;
인코딩 = !! 인코딩? (인코딩 + '') .tolowercase () : 'utf8';
if (string.length> 0 && (길이 <0 || 오프셋 <0))
새로운 RangeError를 던지십시오 ( '버퍼 경계를 넘어서 쓰려고 시도);
var ret;
스위치 (인코딩) {
케이스 'hex':
ret = this.HexWrite (문자열, 오프셋, 길이);
부서지다;
사례 'UTF8':
사례 'UTF-8':
ret = this.utf8write (문자열, 오프셋, 길이);
부서지다;
사례 'ASCII':
ret = this.asciiwrite (문자열, 오프셋, 길이);
부서지다;
케이스 '바이너리':
ret = this.binaryWrite (문자열, 오프셋, 길이);
부서지다;
사례 'Base64':
// 경고 : Base64Write에서 MaxLength가 고려되지 않습니다
ret = this.base64write (문자열, 오프셋, 길이);
부서지다;
사례 'UCS2':
사례 'UCS-2':
사례 'UTF16LE':
사례 'UTF-16LE':
ret = this.ucs2write (문자열, 오프셋, 길이);
부서지다;
기본:
새 typeerror를 던지십시오 ( '알 수없는 인코딩 :' + 인코딩);
}
반환 반환 리턴;
};