Maison  >  Article  >  interface Web  >  Instructions d'utilisation de la méthode fs.read dans node.js_node.js

Instructions d'utilisation de la méthode fs.read dans node.js_node.js

WBOY
WBOYoriginal
2016-05-16 16:26:111307parcourir

Description de la méthode :

Lire les données du fichier en fonction du descripteur de fichier spécifié fd et écrire l'objet tampon pointé par le tampon. Il fournit une interface de niveau inférieur à readFile.

Il n'est généralement pas recommandé d'utiliser cette méthode pour lire des fichiers, car elle vous oblige à gérer manuellement le tampon et le pointeur de fichier, surtout lorsque vous ne connaissez pas la taille du fichier, ce sera une chose très gênante.

Grammaire :

Copier le code Le code est le suivant :

fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])

Puisque cette méthode appartient au module fs, le module fs doit être introduit avant utilisation (var fs= require(“fs”) )

Paramètres de réception :

Descripteur de fichier fs

buffer Le tampon dans lequel les données seront écrites.

offset Le décalage écrit dans le tampon

length (integer) Spécifie la longueur du fichier lu en octets

position (entier) Spécifie la position de départ de la lecture du fichier. Si cet élément est nul, les données seront lues à partir de la position du pointeur de fichier actuel.

callback Le rappel passe trois paramètres, err, bytesRead, buffer

· erreur Exception

· bytesRead : Nombre d'octets lus

·buffer : objet tampon

Exemple :

Copier le code Le code est le suivant :

var fs = require('fs');
fs.open('123.txt' , 'r' , function (err,fd){
si (erreur) {
console.erreur(erreur);
Retournez
}

var buf = nouveau tampon (8);
fs.read(fd, buf, 0, 8, null, function(err,bytesRead, buffer){
si (erreur) {
console.log(err);
Retournez
}
console.log('bytesRead' bytesRead);
console.log(tampon);
})
})

Code source :

Copier le code Le code est le suivant :

fs.read = function(fd, buffer, offset, length, position, callback) {
si (!util.isBuffer(buffer)) {
// interface de chaîne héritée (fd, longueur, position, encodage, rappel)
var cb = arguments[4],
encodage = arguments[3];
assertEncoding(encodage);
position = arguments[2];
longueur = arguments[1];
buffer = nouveau Buffer(longueur);
Décalage = 0 ;
​ callback = function(err, bytesRead) {
Si (!cb) retourne ;
var str = (bytesRead > 0) ? buffer.toString(encoding, 0, bytesRead) : '';
(cb)(err, str, bytesRead);
};
>
function wrapper (err, bytesRead) {
// Conserve une référence au tampon afin qu'elle ne puisse pas être GC trop tôt.
​ rappel && rappel(err, bytesRead || 0, buffer);
>
liaison.read(fd, buffer, offset, length, position, wrapper);
};
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn