对于体积比较大的文件,我们可以去创建一下可读的文件流去读取这种大文件,这样我们就可以一点一点的去处理文件的内容了,不至于把它全部都读取到内存里,有可能会让应用崩溃 ..
先导入 fs 这个模块 .. 然后去创建一个可读的流 .. 名字叫它 fileReadStream .. 使用一下 fs 的 createReadStream 这个方法 .. 把要读取的文件交给这个方法 .. 比如 data.json ..
读取到文件里的数据以后,会发生 data 事件 .. 可以再去订阅一下这个事件 .. 使用 fileReadStream 的 on 这个方法 .. 事件的名字是 data .. 读取过来的数据是一块一块的 ..
这些数据交给这个监听器的参数 .. 名字可以是 chunk ,表示一块儿数据 .. 再输出每次读取过来的数据的字符数量 .. 前面可以再加上一个计数用的东西 .. 先去定义一个变量 .. 名字是 count ,让它先等于 0 .. 然后每次发生 data 事件的时候 ,让这个 count 加上 1 ..
我们可以再用一个 once 去只订阅一次 data 这个事件 .. 这回我们把 chunk 输出到控制台上 ..
下面再去创建一个要读取的文件 .. 这里可以请求一下豆瓣的 top250 这个 api ... 要求返回 100 个项目 ... 复制一下返回来的内容 ..
在项目根目录下创建一个 data.json .. 把复制的内容粘贴到这里 .. 保存一下 ..
再去执行一下 ...
这里会先把第一次读取过来的数据输出到控制台上 ... 然后你会看到, data 事件一共发生了 4 次 .. 也就是 data.json 这个文件会被分成四份读取过来 ..
这个数据现在是 Buffer .. 把它转换成能看的字符串,可以用一下 toString 这个方法 ..
现在这里显示的第一次读取过来的数据就会是字符串形式的 ..