ObjetoBufferedStream
Objeto de lectura de caché
El objeto BufferedStream es un objeto de flujo almacenado en búfer que se utiliza para la lectura de flujo binario. Puede almacenar en caché su flujo subyacente y proporcionar capacidades de lectura de texto. Cuando se utiliza el objeto BufferedStream, solo necesita pasar el objeto de flujo que se procesará como parámetro de construcción. Método de creación:
1var reader = new io.BufferedStream(stream);
BufferedStream hereda deStreamobjeto, tenerStreamTodos los métodos y propiedades del objeto. Entre ellos, el atributo de secuencia se utiliza para consultar el objeto de secuencia al crear el objeto de caché. El objeto BufferedStream también admite el atributo EOL para consultar y configurar el identificador de fin de línea (predeterminado, posix:\"\n\"; windows:\"\r\n\") y el atributo charset para consultar y configurar el objeto actual que procesa el conjunto de caracteres para texto, el valor predeterminado es utf-8.
Cuando el objeto BufferedStream lee datos de flujo, adopta un método de bloque para leer primero los datos en el búfer y luego obtener los datos del búfer, lo que puede reducir efectivamente la cantidad de interacciones de red al leer datos de flujo y mejorar la eficiencia de lectura. eficiencia.
El objeto BufferedStream también proporciona el método de escritura para escribir los datos dados en la secuencia, y cuando el objeto de secuencia subyacente esté bloqueado por escritura, espere a que acepte los datos antes de continuar con el siguiente paso. El método Flush escribe el contenido del búfer del archivo en un dispositivo físico. El método close cierra el objeto de flujo actual. La implementación específica de algunos métodos se puede implementar en subclases.
Al utilizar el objeto BufferedStream, debe tener cuidado de no mezclarlo con otros objetos de flujo subyacentes que ya estén en uso; de lo contrario, puede provocar lecturas repetidas de datos o errores de lectura.
A continuación se muestra un código de muestra que utiliza un objeto BufferedStream para leer el contenido de un archivo:
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 herencia
Constructor
BufferedStream
Constructor BufferedStream
1new BufferedStream(Stream stm);
Parámetros de llamada:
- stm:Stream, el objeto de flujo binario subyacente de BufferedStream
propiedades de miembros
stream
Stream, Consulta el objeto de flujo al crear el objeto de caché.
1readonly Stream BufferedStream.stream;
charset
Cadena, consulta y establece el juego de caracteres del objeto actual al procesar texto, el valor predeterminado es utf-8
1String BufferedStream.charset;
EOL
Cadena, consulta y establece el identificador de final de línea. De forma predeterminada, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.EOL;
fd
Entero, consultaStreamEl valor del descriptor de archivo correspondiente, implementado por subclases.
1readonly Integer BufferedStream.fd;
función miembro
readText
Leer texto con caracteres específicos
1String BufferedStream.readText(Integer size) async;
Parámetros de llamada:
- size: Entero, especifica el número de caracteres de texto que se leerán, lo que sea UTF8 o el número especificado de bytes de codificación.
Resultados de devolución:
- String, devuelve la cadena de texto leído. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.
readLine
Leer una línea de texto. El identificador de fin de línea se basa en la configuración del atributo EOL. De forma predeterminada, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.readLine(Integer maxlen = -1) async;
Parámetros de llamada:
- maxlen: Entero, especifica la cadena máxima leída esta vez, según el número de bytes de codificación utf8. No hay límite en el número de caracteres de forma predeterminada.
Resultados de devolución:
- String, devuelve la cadena de texto leído. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.
readLines
Leer un grupo de líneas de texto en modo de matriz. El identificador de fin de línea se basa en la configuración del atributo EOL. De forma predeterminada, posix:\"\n\"; windows:\"\r\n\"
1Array BufferedStream.readLines(Integer maxlines = -1);
Parámetros de llamada:
- maxlines: Entero, especifica el número máximo de líneas que se leerán esta vez. De forma predeterminada, se leen todas las líneas de texto.
Resultados de devolución:
- Array, devuelve una matriz de líneas de texto leídas. Si no hay datos para leer o la conexión se interrumpe, la matriz estará vacía.
readUntil
Leer una cadena de texto que termine con los bytes especificados.
1
2String BufferedStream.readUntil(String mk,
Integer maxlen = -1) async;
Parámetros de llamada:
- mk: Cadena, la cadena que especifica el final
- maxlen: Entero, especifica la cadena máxima leída esta vez, según el número de bytes de codificación utf8. No hay límite en el número de caracteres de forma predeterminada.
Resultados de devolución:
- String, devuelve la cadena de texto leído. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.
writeText
Escribe una cadena
1BufferedStream.writeText(String txt) async;
Parámetros de llamada:
- txt: Cadena, especifica la cadena que se escribirá
writeLine
Escribe una cadena y escribe un carácter de nueva línea.
1BufferedStream.writeLine(String txt) async;
Parámetros de llamada:
- txt: Cadena, especifica la cadena que se escribirá
read
Leer datos de tamaño especificado de la secuencia
1Buffer BufferedStream.read(Integer bytes = -1) async;
Parámetros de llamada:
- bytes: Entero, especifica la cantidad de datos que se leerán. El valor predeterminado es leer bloques de datos de tamaño aleatorio. El tamaño de los datos leídos depende del dispositivo.
Resultados de devolución:
- Buffer, devuelve los datos leídos de la secuencia. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.
write
Escribe los datos dados en la secuencia.
1BufferedStream.write(Buffer data) async;
Parámetros de llamada:
- data:Buffer, dados los datos a escribir
flush
Escribir el contenido del búfer de archivos en un dispositivo físico
1BufferedStream.flush() async;
close
Cerrar el objeto de flujo actual
1BufferedStream.close() async;
copyTo
Copiar datos de la transmisión a la transmisión de destino
1
2Long BufferedStream.copyTo(Stream stm,
Long bytes = -1) async;
Parámetros de llamada:
- stm:Stream, objeto de flujo de destino
- bytes: Largo, número de bytes copiados
Resultados de devolución:
- Long, devuelve el número de bytes copiados
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String BufferedStream.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value BufferedStream.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable