Sexto Tutorial Node Js Buffers y Streams?
Javascript en realidad no es un lenguaje que este muy cerca de procesos unicode como otros lenguajes de programación pero con node js es posible, es posible crear almacenamientos de memoria temporales para guardar valores string arrays incluso, existen muchas maneras de hacerlo.
Maneras de crear buffers:
var buf = new Buffer(10);
Un buffer de arrays
var buf = new Buffer([10,20,30,40,50])
Un buffer de estring con UTF8
var buf =new Buffer("Simply Easy Learning","utf-8")
Que metodos se le puede aplicar a un buffer
String: Para poder escribir un buffer
offset: indice que indica desde cual se va iniciar a escribir
length: longuitud el numero en bytes.
encoding: se usa por defecto utf8
EJEMPLO
Para leer el contenido de buffers se puede hacer lo siguiente:
buf.toString([encoding][, start][, end])
Parametros:
encoding : como se habia mencionando utf8 es el que va por default.
start: indice que indica desde cual se va iniciar a escribir
end: Fin del index para terminar la lectura
Algo que si es importante de mencionar esque se puede convertir un buff en un archivo Json
de una manera muy senilla usando el metodo .json() de la siguiente manera:
bif.toJson()
trasforma la informacion en Json donde se especifica el type: "Buffer" y la data es el mero codigo.
{ type: 'Buffer', data: [ 83, 105, 109, 112, 108, 121, 32, 69, 97, 115, 121, 32, 76, 101, 97, 114, 110, 105, 110, 103 ] }
Se pueden tambien concatenar los buffers de la siguiente manera
Buffer.concat(list[, totalLength])
var buffer1 = new Buffer('TutorialsPoint '); var buffer2 = new Buffer('Simply Easy Learning'); var buffer3 = Buffer.concat([buffer1,buffer2]); console.log("buffer3 content: " + buffer3.toString());
Tambien se pueden comparar buffers
mediante el metodo buffer.compare(buffer2) si el valor es igual se retorna un 1 caso contrario un numero menor a 1 asi se sabe que no son iguales lo buffer.
var buffer1 = new Buffer('ABC'); var buffer2 = new Buffer('ABCD'); var result = buffer1.compare(buffer2); if(result < 0) { console.log(buffer1 +" comes before " + buffer2); } else if(result === 0) { console.log(buffer1 +" is same as " + buffer2); } else { console.log(buffer1 +" comes after " + buffer2); }
Siguiendo la mismo concepto para comparar se puede copiar un buffer en otro usando buufer1.copy(buffer2) de este modo en buffer 1 se estaria guardando la copia de buffer 2.
Tambien al igual que en javacript se puede usar el Slice Buffer y como en javascript se le debe establecer un indice de inicio y uno de fin para el recorte del buffer
buffer1. slice([iniciodelcorte][findelcorte]) en tal caso si no se especifica el inicio por defecto es 0.
Del mismo modo se puede conocer la longuitud del buffer usando buffer.length.
Otros metodos que se puede usar son:
Buffer.isEncoding(encoding): retorna verdad si esta codificado con el encoding que se le envia caso contrario pues falso.
Buffer.isBuffer(obj): es un test para saber si el obj que se recibe es un buffer o no si lo es retorna true caso contrario falso.
Buffer.byteLength(string[,encoding]): Bringa la loguitud en bits de buffer
Buffer.concat(list[,totalLength]): retorna verdad si lo que recibe por parametro es una lista de buffer concatenados
Buffer.compare(buf1,buf2): En el compare se puede incluso si dos array de buffer son iguales o no.
Comentarios
Publicar un comentario