> 웹 프론트엔드 > JS 튜토리얼 > node.js_node.js의 buffer.write 메소드 사용 지침

node.js_node.js의 buffer.write 메소드 사용 지침

WBOY
풀어 주다: 2016-05-16 16:27:47
원래의
1576명이 탐색했습니다.

방법 설명:

지정된 인코딩을 사용하여 버퍼의 오프셋에 문자열을 씁니다.

기록된 옥텟 수를 반환합니다.

버퍼에 전체 문자열을 넣을 공간이 충분하지 않으면 문자열의 일부만 기록됩니다.

문법:

코드 복사 코드는 다음과 같습니다.

buffer.write(문자열, [오프셋], [길이], [인코딩])

수신 매개변수:

string 문자열, 버퍼에 기록되는 데이터입니다.
오프셋 번호, 선택 사항, 기본값 0. 데이터가 버퍼에 기록되는 위치입니다.
length 숫자, 선택, 기본값: buffer.length – offset, 기록할 데이터의 길이
인코딩 문자열, 사용할 인코딩 형식, 선택 사항, 기본값은 "utf8"입니다.

예:

코드 복사 코드는 다음과 같습니다.

buf = 새 버퍼(256);

len = buf.write('u00bd u00bc = u00be', 0);

console.log(len " 바이트: " buf.toString('utf8', 0, len));

소스코드:

코드 복사 코드는 다음과 같습니다.

Buffer.prototype.write = 함수(문자열, 오프셋, 길이, 인코딩) {
  // 쓰기 허용(문자열, 인코딩)
  if (util.isString(offset) && util.isUndefine(length)) {
    인코딩 = 오프셋;
    오프셋 = 0;
  // 쓰기 허용(문자열, 오프셋[, 길이], 인코딩)
  } else if (isFinite(오프셋)) {
    오프셋 = ~~오프셋;
    if (isFinite(길이)) {
      길이 = ~~길이;
    } 그 밖의 {
      인코딩 = 길이;
      길이 = 정의되지 않음;
    }
  // XXX 레거시 쓰기(문자열, 인코딩, 오프셋, 길이) - v0.13에서 제거
  } 그 밖의 {
    if (!writeWarned) {
      if(process.throwDeprecation)
        새로운 오류 발생(writeMsg);
      else if(process.traceDeprecation)
        console.trace(writeMsg);
      그 외
        console.error(writeMsg);
      writeWarned = true;
    }
    var 스왑 = 인코딩;
    인코딩 = 오프셋;
    오프셋 = ~~길이;
    길이 = 교환;
  }
  var 남은 = this.length - 오프셋;
  if (util.isUndefine(length) || 길이 > 남음)
    길이 = 남은;
  인코딩 = !!인코딩 ? (인코딩 '').toLowerCase() : 'utf8';
  if (string.length > 0 && (length < 0 || 오프셋 < 0))
    throw new RangeError('버퍼 범위를 넘어서 쓰려고 시도했습니다');
  var ret;
  스위치(인코딩) {
    케이스 '16진수':
      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(문자열, 오프셋, 길이);
      휴식;
    기본값:
      throw new TypeError('알 수 없는 인코딩: ' 인코딩);
  }
  리트윗;
};
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿