Description de la méthode:
Lisez les données de fichier en fonction du descripteur de fichiers spécifié FD et écrivez dans l'objet tampon pointé par le tampon. Il fournit une interface plus sous-jacente que ReadFile.
Cette méthode n'est pas recommandée de lire les fichiers en général, car il vous oblige à gérer manuellement les tampons et les pointeurs de fichiers, surtout lorsque vous ne connaissez pas la taille du fichier, ce qui peut être une chose très gênante.
grammaire:
La copie de code est la suivante:
Fs.read (FD, tampon, décalage, longueur, position, [rappel (err, bytesRead, tampon)]))
Étant donné que cette méthode appartient au module FS, il est nécessaire d'introduire le module FS avant utilisation (var fs = require ("fs")))
Recevoir des paramètres:
Descripteur de fichier FS
tampon, les données seront écrites.
décalage d'écriture dans le tampon de décalage
longueur (entier) spécifie la longueur des octets de lecture de fichiers
La position (entier) spécifie la position de départ pour la lecture de fichiers. Si cet élément est nul, les données seront lues à partir de la position du pointeur de fichier actuel.
Le rappel passe trois paramètres, err, bytesread et tampon
・ Err Exception
・ BytesRead: le nombre d'octets lus
・ Tampon: objet tampon
exemple:
La copie de code est la suivante:
var fs = require ('fs');
fs.open ('123.txt', 'r', fonction (err, fd) {
if (err) {
console.error (err);
retour;
}
var buf = nouveau tampon (8);
fs.read (fd, buf, 0, 8, null, fonction (err, bytesRead, tampon) {
if (err) {
console.log (err);
retour;
}
console.log ('bytesRead' + bytesRead);
console.log (tampon);
})
})
Code source:
La copie de code est la suivante:
fs.read = fonction (fd, tampon, décalage, longueur, position, rappel) {
if (! util.isbuffer (tampon)) {
// Interface de chaîne héritée (FD, longueur, position, encodage, rappel)
var cb = arguments [4],
codage = arguments [3];
affirmation (codage);
position = arguments [2];
longueur = arguments [1];
tampon = nouveau tampon (longueur);
offset = 0;
callback = fonction (err, bytesRead) {
si (! cb) retourner;
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'il ne puisse pas être gc'ed trop tôt.
callback && callback (err, bytesRead || 0, tampon);
}
Binding.read (FD, tampon, décalage, longueur, position, wrapper);
};