stream 에서 byteCount
만큼 byte 를 추출합니다. 추출한 byte 들을 textEncoding
으로 인코딩된 문자열로 재해석하여 돌려줍니다. 결과는 string
입니다. byteCount
만큼 FileStream.readBytes
가 증가합니다.
stream.readString(textEncoding, byteCount);
textEncoding
읽을 문자열의 인코딩(character encoding) 방식을 명시하는 TextEncoding
열거형.
TextEncoding.Utf8
— UTF-8 방식으로 저장되었다고 생각합니다. 하나의 문자는 1/2/3/4 byte 의 크기를 가질 수 있습니다. multi-byte 문자인지를 확인하기 위한 최소 단위가 1-byte 이므로, endianess 를 고려할 필요가 없습니다. C-style 문자열을 읽는 경우에도 TextEncoding.Utf8
을 사용하면 됩니다.TextEncoding.Utf16le
— UTF-16LE 방식으로 저장되었다고 생각합니다. UTF16 은 하나의 문자가 2/4 byte 의 크기를 가질 수 있습니다. 최소 크기의 문자부터 multi-byte (2-byte) 이므로, endianess 를 고려해야 합니다. TextEncoding.Utf16le
는 little endian 으로 저장되어있음을 명시합니다.TextEncoding.ShiftJis
— Shift-jis 방식으로 저장되었다고 생각합니다. 일본어(Japanese language)를 위한 인코딩 방식으로, 1-2 byte 의 크기를 가질 수 있습니다. 크기가 2-byte 인 경우, 첫번째 byte 가 항상 특정 범위의 값을 가지고 있으므로 multi-byte 문자인지 확인하기 위한 최소단위가 1-byte 입니다. 고로 endianess 를 고려할 필요가 없습니다.byteCount
추출할 byte 의 갯수. 예를 들어 UTF-16LE 방식으로 저장되어 있는 𤭢
라는 문자가 있다고 합시다. 이 문자는 (char[4]) { 0x52, 0xD8, 0x62, 0xDF }
로 저장되어 있으므로, 전달해야할 값은 4
입니다.
추출한 byte 들을 디코딩(decoding)하여 얻은 string
.