Node.jsで特定の行をファイルから取得する方法


方法1: fsモジュールを使用する方法

const fs = require('fs');
function getLineFromFile(filePath, lineNumber) {
  const fileContent = fs.readFileSync(filePath, 'utf-8');
  const lines = fileContent.split('\n');

  // 指定した行番号の行を取得する
  const line = lines[lineNumber - 1];

  return line;
}
// 使用例
const filePath = 'path/to/file.txt';
const lineNumber = 5;
const line = getLineFromFile(filePath, lineNumber);
console.log(line);

方法2: readlineモジュールを使用する方法

const fs = require('fs');
const readline = require('readline');
async function getLineFromFile(filePath, lineNumber) {
  const fileStream = fs.createReadStream(filePath);
  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });

  let currentLine = 1;
  for await (const line of rl) {
    if (currentLine === lineNumber) {
      rl.close();
      return line;
    }
    currentLine++;
  }

  return null; // 指定した行が見つからない場合はnullを返す
}
// 使用例
const filePath = 'path/to/file.txt';
const lineNumber = 5;
getLineFromFile(filePath, lineNumber)
  .then(line => console.log(line))
  .catch(error => console.error(error));

これらの方法を使うと、Node.jsでファイルから特定の行を取得することができます。選択した方法に応じて、上記のコード例を参考にしてください。また、ファイルの読み込みエラーへの対処やエラーハンドリングにも注意してください。