Maison >interface Web >js tutoriel >Notes d'étude NodeJS Fichier FS module_node.js

Notes d'étude NodeJS Fichier FS module_node.js

WBOY
WBOYoriginal
2016-05-16 16:20:321033parcourir

1, analyse d'ouverture

Le module de système de fichiers est un simple wrapper pour un ensemble de méthodes d'opération d'E/S de fichiers POSIX standard. Le module peut être obtenu en appelant require("fs"). Toutes les méthodes du module de système de fichiers ont des versions asynchrones et synchrones.

(1), la méthode asynchrone dans le module du système de fichiers nécessite une fonction de rappel d'achèvement comme dernier paramètre formel entrant.

(2), la composition de la fonction de rappel est déterminée par la méthode asynchrone appelée. Habituellement, le premier paramètre formel de la fonction de rappel est les informations d'erreur renvoyées.

(3), si l'opération asynchrone est exécutée correctement et renvoyée, le paramètre d'erreur sera nul ou indéfini. Si vous utilisez la version synchrone de la méthode d'opération, si une erreur se produit, l'erreur sera renvoyée sous la forme d'une erreur normale générée.

(4), vous pouvez utiliser les instructions try et catch pour intercepter les erreurs et permettre au programme de continuer.

Regardons d'abord un exemple simple, la lecture d'un fichier ("bb.txt") :

(1), créez le fichier "bb.txt" avec le contenu suivant ("Bonjour à tous, je m'appelle Nobita ! (*^__^*) Hee hee...").

(2), l'opération de lecture du fichier est la suivante :

Copier le code Le code est le suivant :

var fs = require("fs") ;
fs.readFile("bb.txt","utf8",fonction (erreur,données){
Si (erreur) renvoie une erreur ;
console.log(données) ;
}) ;

Résultat de l'exécution :

Ce qu'il faut noter ici : l'encodage doit être paramétré lors de la lecture des fichiers, sinon il apparaîtra sous forme de "buffer" par défaut.

En regardant l'effet de course sans réglages, la différence est toujours évidente. Comme suit :

Faisons une autre opération d'écriture, comme suit :

Copier le code Le code est le suivant :

var fs = require("fs") ;
var txt = "Tout le monde devrait bien apprendre NodeJS !!!" //Écrire le fichier
fs.writeFile("bb.txt",txt,function (err) {
Si (err) lance erreur ;
console.log("Fichier enregistré !"); //Le fichier est enregistré
}) ;

Résultat de l'exécution :

Liste de quelques exemples couramment utilisés :

Copier le code Le code est le suivant :
// Supprimer le fichier
fs.unlink('bb.txt', function(){
console.log('succès') ;
}) ;
// Modifier le nom du fichier
fs.rename('bb.txt','bigbear.txt',function(err){
console.log('renommer succès') ;
});
// Vérifier l'état du fichier
fs.stat('bb.txt', fonction(err, stat){
console.log(stat);
});
// Détermine si le fichier existe
fs.exists('bb.txt', function( existe ){
console.log( existe ) ;
}) ;

2. La connexion entre Fs et Stream

"Stream" a des caractéristiques asynchrones. Nous pouvons diviser un fichier ou un élément de contenu en « morceaux » inconnus d'une taille spécifiée pour la lecture, et chaque fois qu'un « morceau » est lu, nous le publions. jusqu'à ce que le fichier soit lu. C'est comme "Transfer-Encoding: chunked" pris en charge par "http1.1". ("chunk" peut exister sous n'importe quelle forme, NodeJS existe sous forme de "Buffer" par défaut, ce qui est plus efficace). "Stream" dans NodeJS a une super fonctionnalité sur les systèmes Unix ("pipe" ------ pipe).

Vous souvenez-vous encore du premier programme NodeJS dans « Article sur le module HTTP », « Hello, Big Bear ! » ? Apportons quelques modifications basées sur ce petit programme, comme suit :

(1), créez "bb.html"

Copier le code Le code est le suivant :