📅  最后修改于: 2023-12-03 15:08:14.389000             🧑  作者: Mango
在 Node.js 中,我们可以使用 fs
模块来读取文件。如果我们想要获取文件中的特定行,以下是一些方法。
readline
模块可以使用 Node.js 的 readline
模块来逐行读取文件并找到特定行。
const readline = require('readline');
const fs = require('fs');
function getLineByNumber(filename, lineNumber) {
const fileStream = fs.createReadStream(filename);
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
});
let currentLine = 0;
return new Promise((resolve, reject) => {
rl.on('line', (line) => {
currentLine++;
if (currentLine === lineNumber) {
rl.close();
resolve(line);
}
});
rl.on('close', () => {
reject(`Unable to find line ${lineNumber}`);
});
});
}
// Example usage
getLineByNumber('file.txt', 3)
.then((line) => {
console.log(line);
})
.catch((err) => {
console.error(err);
});
split
方法可以使用 split
方法将文件内容按行拆分为数组,然后获取特定的行。
const fs = require('fs');
function getLineByNumber(filename, lineNumber) {
return new Promise((resolve, reject) => {
fs.readFile(filename, 'utf-8', (err, data) => {
if (err) {
reject(err);
}
const lines = data.split('\n');
if (lineNumber > lines.length) {
reject(`Unable to find line ${lineNumber}`);
}
resolve(lines[lineNumber - 1]);
});
});
}
// Example usage
getLineByNumber('file.txt', 3)
.then((line) => {
console.log(line);
})
.catch((err) => {
console.error(err);
});
以上是两种在 Node.js 中获取文件特定行的方法。当然,还有其他方法可以实现同样的功能,但这些方法是最简单的,同时也是最常用的。