ObjectBufferedStream
Obxecto de lectura da caché
O obxecto BufferedStream é un obxecto de fluxo almacenado no búfer que se usa para a lectura do fluxo binario. Pode almacenar na caché o seu fluxo subxacente e proporcionar capacidades de lectura de texto. Cando se utiliza o obxecto BufferedStream, só precisa pasar o obxecto de fluxo para procesalo como parámetro de construción. Método de creación:
1var reader = new io.BufferedStream(stream);
BufferedStream herda deStreamobxecto, terStreamTodos os métodos e propiedades do obxecto. Entre eles, o atributo stream úsase para consultar o obxecto stream ao crear o obxecto de caché. O obxecto BufferedStream tamén admite o atributo EOL para consultar e configurar o identificador de fin de liña (por defecto, posix:\"\n\"; windows:\"\r\n\") e o atributo charset para consultar e configurar o procesamento do obxecto actual. Conxunto de caracteres para o texto, o predeterminado é utf-8.
Cando o obxecto BufferedStream le os datos do fluxo, adopta un método de bloque para ler primeiro os datos no búfer e despois obter os datos do búfer. Isto pode reducir de forma efectiva o número de interaccións de rede ao ler os datos do fluxo e mellorar a eficiencia da lectura. eficiencia.
O obxecto BufferedStream tamén proporciona o método de escritura para escribir os datos dados no fluxo e, cando o obxecto do fluxo subxacente se bloquee por escrito, agarde a que acepte os datos antes de continuar co seguinte paso. O método Flush escribe o contido do búfer do ficheiro nun dispositivo físico. O método close pecha o obxecto de fluxo actual. A implementación específica dalgúns métodos pódese implementar en subclases.
Ao usar o obxecto BufferedStream, cómpre ter coidado de non mesturalo con outros obxectos de fluxo subxacentes que xa estean en uso, se non, pode provocar lecturas repetidas de datos ou erros de lectura.
Aquí tes un código de mostra que usa un obxecto BufferedStream para ler o contido dun ficheiro:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19var fs = require('fs');
var io = require('io');
var filename = "test.txt";
// open file
var file = fs.openFile(filename);
// create BufferedStream object
var reader = new io.BufferedStream(file);
// read file content
var lines = reader.readLines();
for (var i = 0; i < lines.length; i++)
console.log(lines[i]);
// close file
file.close();
relación de herdanza
Construtor
BufferedStream
Construtor de BufferedStream
1new BufferedStream(Stream stm);
Parámetros de chamada:
- stm:Stream, o obxecto de fluxo binario subxacente de BufferedStream
propiedades dos membros
stream
Stream, Consulta o obxecto de fluxo ao crear o obxecto de caché
1readonly Stream BufferedStream.stream;
charset
Cadena, consulta e establece o conxunto de caracteres do obxecto actual ao procesar texto, o valor predeterminado é utf-8
1String BufferedStream.charset;
EOL
Cadena, consulta e establece o identificador do final de liña. Por defecto, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.EOL;
fd
Número enteiro, consultaStreamO valor do descritor do ficheiro correspondente, implementado por subclases
1readonly Integer BufferedStream.fd;
función de membro
readText
Ler texto con caracteres especificados
1String BufferedStream.readText(Integer size) async;
Parámetros de chamada:
- size: Enteiro, especifica o número de caracteres de texto a ler, o que sexa UTF8 ou o número especificado de bytes de codificación.
Resultados de devolución:
- String, devolve a cadea de texto lida. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.
readLine
Le unha liña de texto. O identificador de fin de liña baséase na configuración do atributo EOL. Por defecto, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.readLine(Integer maxlen = -1) async;
Parámetros de chamada:
- maxlen: Enteiro, especifica a cadea máxima lida esta vez, en función do número de bytes de codificación utf8. Non hai límite no número de caracteres por defecto.
Resultados de devolución:
- String, devolve a cadea de texto lida. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.
readLines
Le un grupo de liñas de texto en modo matriz. O identificador de fin de liña baséase na configuración do atributo EOL. Por defecto, posix:\"\n\"; windows:\"\r\n\"
1Array BufferedStream.readLines(Integer maxlines = -1);
Parámetros de chamada:
- maxlines: Número enteiro, especifica o número máximo de liñas que se van ler nesta ocasión. Por defecto, len todas as liñas de texto.
Resultados de devolución:
- Array, devolve unha matriz de liñas de texto lidas. Se non hai datos para ler ou se interrompe a conexión, a matriz estará baleira.
readUntil
Ler unha cadea de texto que remate cos bytes especificados
1
2String BufferedStream.readUntil(String mk,
Integer maxlen = -1) async;
Parámetros de chamada:
- mk: String, a cadea que especifica o final
- maxlen: Enteiro, especifica a cadea máxima lida esta vez, en función do número de bytes de codificación utf8. Non hai límite no número de caracteres por defecto.
Resultados de devolución:
- String, devolve a cadea de texto lida. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.
writeText
Escribe unha cadea
1BufferedStream.writeText(String txt) async;
Parámetros de chamada:
- txt: Cadea, especifica a cadea que se vai escribir
writeLine
Escribe unha cadea e escribe un carácter de nova liña
1BufferedStream.writeLine(String txt) async;
Parámetros de chamada:
- txt: Cadea, especifica a cadea que se vai escribir
read
Ler datos do tamaño especificado do fluxo
1Buffer BufferedStream.read(Integer bytes = -1) async;
Parámetros de chamada:
- bytes: Número enteiro, especifica a cantidade de datos que se van ler. O valor predeterminado é ler bloques de datos de tamaño aleatorio. O tamaño dos datos lidos depende do dispositivo.
Resultados de devolución:
- Buffer, devolve os datos lidos do fluxo. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.
write
Escribe os datos dados no fluxo
1BufferedStream.write(Buffer data) async;
Parámetros de chamada:
- data:Buffer, dados os datos a escribir
flush
Escribe o contido do búfer de ficheiros no dispositivo físico
1BufferedStream.flush() async;
close
Pecha o obxecto de fluxo actual
1BufferedStream.close() async;
copyTo
Copia os datos do fluxo no fluxo de destino
1
2Long BufferedStream.copyTo(Stream stm,
Long bytes = -1) async;
Parámetros de chamada:
- stm:Stream, obxecto de fluxo de destino
- bytes: Longo, número de bytes copiados
Resultados de devolución:
- Long, devolve o número de bytes copiados
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String BufferedStream.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value BufferedStream.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable