Descripción del método:
Lea los datos del archivo de acuerdo con el descriptor de archivo especificado FD y escriba al objeto del búfer que el búfer. Proporciona una interfaz más subyacente que ReadFile.
No se recomienda que este método lea los archivos en general, ya que requiere que administre manualmente los búferes y los punteros de archivos, especialmente cuando no conoce el tamaño del archivo, lo que puede ser algo muy problemático.
gramática:
La copia del código es la siguiente:
fs.Read (fd, búfer, compensación, longitud, posición, [devolución de llamada (err, bytesread, buffer)]))
Dado que este método pertenece al módulo FS, es necesario introducir el módulo FS antes de usar (var fs = require ("fs")))
Recibir parámetros:
Descriptor de archivo FS
Buffer, se escribirán datos.
compensación de escritura al búfer de compensación
Longitud (entero) especifica la longitud de los bytes de lectura de archivos
Position (Integer) Especifica la posición inicial para la lectura de archivos. Si este elemento es nulo, los datos se leerán desde la posición del puntero del archivo actual.
La devolución de llamada pasa tres parámetros, err, bytesread y buffer
・ Excepción err
・ Bytesread: el número de bytes leídos
・ Buffer: objeto de búfer
ejemplo:
La copia del código es la siguiente:
var fs = require ('fs');
fs.open ('123.txt', 'r', function (err, fd) {
if (err) {
console.error (err);
devolver;
}
var buf = new Buffer (8);
fs.Read (fd, buf, 0, 8, null, function (err, bytesread, buffer) {
if (err) {
console.log (err);
devolver;
}
console.log ('bytesread' +bytesread);
console.log (búfer);
})
})
Código fuente:
La copia del código es la siguiente:
fs.Read = function (fd, buffer, compensación, longitud, posición, devolución de llamada) {
if (! util.isbuffer (buffer)) {
// interfaz de cadena heredada (FD, longitud, posición, codificación, devolución de llamada)
var cb = argumentos [4],
codificación = argumentos [3];
Afirmarcoding (codificación);
posición = argumentos [2];
longitud = argumentos [1];
búfer = nuevo búfer (longitud);
compensación = 0;
callback = function (err, bytesread) {
if (! cb) return;
var str = (bytesread> 0)? buffer.ToString (codificación, 0, bytesread): '';
(cb) (err, str, bytesread);
};
}
function wrapper (err, bytesread) {
// Conserve una referencia al búfer para que no se pueda ver demasiado pronto.
Callback && Callback (err, bytesread || 0, buffer);
}
binding.read (fd, búfer, desplazamiento, longitud, posición, envoltorio);
};