0

Linuxの頭のようなNode.jsの同期メソッドを探しています。

ノードで同期処理を行うのは一般的に悪い考えであることはわかっていますが、有効な使用例があります。ファイルの最初の数行を読み取る必要があります。

4

1 に答える 1

0
// Returns the first few lines of the file.
// file: the file to read.
// lines: the number of lines to return.
// maxBuffer: the maximum number of bytes to read from 
//            the beginning of the file. We default to 
//            1k per line requested.
function head(file, lines, maxBuffer) {
  lines = lines || 10;
  maxBuffer = maxBuffer || lines * 1000;
  var stats = fs.statSync(file);
  var upToMax = Math.min(maxBuffer, stats.size);
  var fileDescriptor = fs.openSync(file, 'r');
  var buffer = Buffer.alloc(upToMax);
  fs.readSync(fileDescriptor, buffer, 0, upToMax, 0);
  var lineA = buffer.toString('utf8').split(/\r?\n/);
  lineA = lineA.slice(0, Math.min(lines, lineA.length));
  // might be nicer just to return the array and let the
  // caller do whatever with it.
  return lineA.join('\n');
}
于 2016-12-08T16:20:16.697 に答える