Lire le fichier ligne par ligne en JavaScript

Ashok Chapagai 12 octobre 2023
  1. Utilisez du JavaScript simple pour lire un fichier local ligne par ligne en JavaScript
  2. Utilisez le module readline de Node.js pour lire un fichier local en JavaScript
  3. Utilisez le module line-reader dans Node.js pour lire un fichier local en JavaScript
Lire le fichier ligne par ligne en JavaScript

Cet article présentera des façons de lire le fichier à l’aide de JavaScript à l’aide de Vanilla JS et du framework JavaScript Node.js.

Utilisez du JavaScript simple pour lire un fichier local ligne par ligne en JavaScript

Nous pouvons créer une simple fonction JavaScript pour lire le fichier local mis en entrée HTML.

Nous pouvons utiliser la balise HTML input pour télécharger le fichier, et la fonction FileReader() pour lire le contenu du fichier ligne par ligne avec l’utilisation de la fonction

Exemple de code :

<input type="file" name="file" id="file" />
document.getElementById('file').onchange = function() {
  var file = this.files[0];
  var reader = new FileReader();
  reader.onload = function(progressEvent) {
    console.log(this.result);
  };
  reader.readAsText(file);
};

Ici, le champ de saisie est sélectionné par la méthode getElementById, qui déclenchera la fonction chaque fois qu’elle sera modifiée (chaque fois qu’un fichier est sélectionné). Nous créons une nouvelle instance de l’objet FileReader(). Lorsque l’instance reader.onload est déclenchée, une fonction avec le paramètre progressEvent est appelée, et nous pouvons imprimer tout le contenu du fichier sur la console comme console.log(this.result).

Nous pouvons étendre la fonction pour lire le contenu du fichier ligne par ligne, comme indiqué ci-dessous.

document.getElementById('file').onchange = function() {
  var file = this.files[0];
  var reader = new FileReader();
  reader.onload = function(progressEvent) {
    var fileContentArray = this.result.split(/\r\n|\n/);
    for (var line = 0; line < lines.length - 1; line++) {
      console.log(line + ' --> ' + lines[line]);
    }
  };
  reader.readAsText(file);
};

L’extrait étendu de la méthode précédente utilise split() pour diviser le contenu lu par la variable de résultat et le stocker dans un tableau de variable fileContentArray. Ensuite, la boucle for est utilisée pour parcourir chaque ligne de la variable fileContentArray et imprimer le contenu du fichier ligne par ligne.

À des fins de test, nous créons un fichier demo.txt qui contient le contenu suivant.

Line 1
Line 2
Line 3

Line 5

Maintenant, nous pouvons voir que le fichier a cinq lignes, et lors du téléchargement du fichier à partir de l’élément HTML Input, nous pouvons voir le contenu du fichier comme dans la sortie ci-dessous.

Production:

1 --> Line 1
2 --> Line 2
3 --> Line 3
4 --> 
5 --> Line 5

On peut ignorer le contenu 1 --> car il permet de visualiser le numéro de ligne du fichier.

Utilisez le module readline de Node.js pour lire un fichier local en JavaScript

Nous devons nous assurer que Node est installé pour utiliser cette méthode. Nous pouvons vérifier cela en tapant node -v dans le terminal ou l’invite de commande. Nous pouvons maintenant utiliser le module readline pour lire facilement le contenu du fichier. Nous créons un fichier, app.js,, et sur la première ligne du fichier app.js,, nous importons le module comme indiqué ci-dessous.

const readline = require('readline');
const fs = require('fs');

Le module readline étant intégré à Node.js, nous ne l’installons pas explicitement. Nous pouvons utiliser le module fs pour créer un flux lisible. C’est parce que le module readline n’est compatible qu’avec les Readable Streams.

Exemple de code :

const readLine = require('readline');
const f = require('fs');
var file = './demo.txt';
var rl = readLine.createInterface(
    {input: f.createReadStream(file), output: process.stdout, terminal: false});
rl.on('line', function(text) {
  console.log(text);
});

Nous pouvons enregistrer le fichier app.js dans le même dossier que le fichier demo.txt et exécuter avec la commande node app.js.

Production:

Line 1
Line 2
Line 3

Line 5

Utilisez le module line-reader dans Node.js pour lire un fichier local en JavaScript

On peut utiliser le module line-reader de Node.js pour lire le fichier en JavaScript. Le module est open source, et nous devons l’installer avec les commandes npm install line-reader --save ou yarn add line-reader.

La lecture du contenu d’un fichier à l’aide du module line-reader est aisée car il fournit la méthode eachLine(). Il nous permet de lire le fichier ligne par ligne. Nous pouvons l’importer en haut de notre fichier app.js en tant que const lineReader = require('line-reader').

La méthode eachLine() prend une fonction de rappel avec deux arguments. Les arguments sont line et last. L’option line stocke le contenu, et l’option last indique si la ligne lue est la dernière ligne du fichier. La deuxième option représente une valeur booléenne.

Exemple de code :

const lineReader = require('line-reader');
lineReader.eachLine('./demo.txt', (line, last) => {
  console.log(line);
})

Nous pouvons enregistrer le fichier app.js dans le dossier où se trouve le fichier demo.txt, ou nous pouvons définir explicitement le chemin du fichier, qui lira le contenu du fichier ligne par ligne imprime la sortie vers la console.

Production:

Line 1
Line 2
Line 3

Line 5
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

Article connexe - JavaScript File