Nodejs でファイルを 1 行ずつ読み取る 2 つの方法

Nodejs でファイルを 1 行ずつ読み取る 2 つの方法

  1. リードライン経由で

    const fs = require('fs');
    const readline  = require('readline');
    
    let rl = readline.createInterface({
          
          
      input: fs.createReadStream("./11.txt")
    })
    rl.on('line', line => {
          
          
      console.log(line);
    })
    
  2. ストリーム経由

    アイデア: ストリーム形式で 1 ​​バイトずつ読み取り、このサブセクションが改行文字であるかどうかを判断します (Mac の改行文字は 0xa0)。

    そうでない場合は、バイトを一時配列に保存します。そうである場合は、これらの配列をバッファーの形式で utf8 にトランスコードします。

    次の場合は、ファイルを読み取り、各行に行 "" を追加し、配列に入れて、新しいファイルに書き込みます。

    const fs = require("fs");
    
    let readStream = fs.createReadStream("./11.txt");
    let writeStream = fs.createWriteStream("./11_11.txt");
    let buffer = [];
    
    function writeFileWithLine(line, isLastLine) {
    	writeStream.write('\t"');
    	writeStream.write(line);
    	if (isLastLine) {
        writeStream.write('"\n')
    	} else {
    		writeStream.write('",\n');
    	}
    }
    writeStream.write("[\n");
    readStream.on("readable", () => {
    	while ((char = readStream.read(1)) !== null) {
    		if (char[0] === 0x0a) {
    			writeFileWithLine(Buffer.from(buffer).toString(), false);
    			buffer.length = 0;
    		} else {
    			buffer.push(char[0]);
    		}
    	}
    });
    readStream.on("end", () => {
    	writeFileWithLine(Buffer.from(buffer).toString(), true);
    	writeStream.write("]");
    });
    
    
    
    

おすすめ

転載: blog.csdn.net/mochenangel/article/details/122743815