1. 使用readline模块逐行读取流数据
1.1. 创建Interface对象
在readline模块中,通过Interface对象的使用来实现逐行读取流数据的处理。因此首先要创建Interface对象,在readline模块中,可以通过createInterface方法来创建Interface对象.readline.createInterface(options),options为一个对象,属性如下
// 输入 exit, quit,q这三个任意之一的时候,会退出 const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, completer: completer }); rl.on('line', (line) => { if (line === 'exit' || line === 'quit' || line === 'q') { rl.close(); } else { console.log('您输入了:', line); } }); rl.on('close', () => { console.log('行数据读取操作被终止'); }); function completer(line) { const completions = '.help .error .exit .quit .q'.split(' '); let hits = completions.filter((c) => { return c.indexOf(line) === 0; }); return [hits.length ? hits : completions, line] }
1.2. 使用Interface对象逐行读取文件
原fs.js文件的内容
console.log('this is line 1'); console.log('this is line 2'); console.log('this is line 3'); console.log('this is line 4'); console.log('this is line 5');
代码内容
const readline = require('readline'); const fs = require('fs'); let file = fs.createReadStream('./fs.js'); let out = fs.createWriteStream('./anotherFs.js'); let index = 1; out.write('/*line' + index.toString() + ": */"); let rl = readline.createInterface({ input: file, output: out, terminal: true }); rl.on('line', (line) => { if (line === '') { rl.close(); } else { index++; out.write('/*line' + index.toString() + ': */'); } });
生成的anotherFs.js文件的内容
/*line1: */console.log('this is line 1'); /*line2: */console.log('this is line 2'); /*line3: */console.log('this is line 3'); /*line4: */console.log('this is line 4'); /*line5: */console.log('this is line 5');/*line6: */
2. 使用util模块中提供的一些方法
+format方法
类似于C语言中的printf方法,将第一个参数值作为一个格式化字符串,将其他参数值作为该格式化字符串中所使用的各中参数,返回一个经过格式化处理后的字符串.util.format('您输入了%d个参数,参数值分别为%s,%s,%s',3,'nice','excelent','holy');
格式化字符串中,可以使用的参数指定符号
+inspect(object,[options])返回一个字符串,该字符串包含了对象的信息,在调试应用程序的过程中非常有用.
+自定义util.inspect颜色
可以通过util.inspect.styles和util.inspect.colors属性全局地自定义util.inspect的颜色输出(如果已启用)
const util = require('util'); console.log(util.format('您输入了%d个参数,参数值分别为%s,%s,%s', 3, 'nice', 'excelent', 'holy')); //您输入了3个参数,参数值分别为nice,excelent,holy console.log(util.format('一个JSON对象%j', {'name': 'jack', 'age': 25})); // 一个JSON对象{"name":"jack","age":25} console.log(util.format('一个百分号%'));// 一个百分号% console.log(util.format('%s:%s', 'one'));// one:%s console.log(util.format('%s', 'one', 'two', 'three', {'name': 'jack'})); function test(one, two) { return one + two; } let parent = new Object(); parent.name = 'parent'; parent.func = test; let child1 = new Object(); child1.name = 'child1'; parent.child1 = child1; let child2 = new Object(); child2.name = 'child2'; child1.child = child2; let child3 = new Object(); child3.name = 'child3'; child2.child = child3; child2.inspect = function (depth) { return util.inspect(this, {depth: depth - 2, customInspect: false}) }; console.log(util.inspect(parent, {customInspect: true, depth: 4})); /** * { name: 'parent', * func: [Function: test], * child1: * { name: 'child1', * child: { name: 'child2', child: [Object], inspect: [Function] } } } * **/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Perl List::Util模块使用实例,包括了Perl List::Util模块使用实例的使用技巧和注意事项,需要的朋友参考一下 在Perl中有一些专门用于处理列表数据的模块,比如说List::Util模块,该模块包含在标准库中,能提供各种高效的常见列表处理工具。因其用C语言来实现,速度一般都挺快! 【例01】扫描符合条件的某个列表,并取出第一个符合条件的 常规做法: 如果改用L
每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。 使用模块的__name__ 例8.2 使用模块的__name__ #!/usr/bin/python
我正在尝试在我的窗口上设置现有的nodejs项目 当我运行node app.js时,我收到以下错误 include-all尝试要求(C:\xampp\htdocs\sails\backend\api\services\fileuploadservice.js)`,但发生错误::详细信息:错误:在function.module._resolveFileName(module.js:547:15)在f
类与模块 在类定义中,使用一致的结构。 class Person # 首先是 extend 与 include extend SomeModule include AnotherModule # 内部类 CustomError = Class.new(StandardError) # 接着是常量 SOME_CONSTANT = 20 # 接下来是属性宏 attr
学习到这里,可以说 Python 基础学习基本接近尾声了。 目录
Symbol 就像一个箱子,哪怕里面装的东西是一样的,也是没法相等的,这是因为每一个箱子都是唯一的。 Symbol 产生主要跟for of循环有关,而for of与for in的区别就是,in 遍历的是对象的key, 而 of 则是遍历 value。 只要实现了 Symbol.iterator 这个接口,就可以通过for of遍历。 最简单的例子就是 let list = [4, 5, 6];