Lire le fichier ligne par ligne en JavaScript
- Utilisez du JavaScript simple pour lire un fichier local ligne par ligne en JavaScript
-
Utilisez le module
readline
de Node.js pour lire un fichier local en JavaScript -
Utilisez le module
line-reader
dans Node.js pour lire un fichier local 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