在nodejs的程序里面怎么理解IO呢,如何用一段代码来说明IO

在nodejs的程序里面怎么理解IO呢,如何用一段代码来说明IO,看了很多文章大部分都只说原理层面,I是input,O是output,但在nodejs的代码层面怎么理解这个IO呢,求大家赐教啊,写了很多代码了,但是每每思考这个问题,总是不得其解;
比方下面这段代码

const path = require('path');
const fs = require('fs');
console.log('start')
fs.readFile(path.join(__dirname,'./data.txt'),(err,data)=>{
    console.log(data.toString());
    console.log('end')
});
console.log('doing')

可能这段代码呢不能解释IO希望大家解惑赐教啊

阅读 3.5k
4 个回答

IO 是 Input/Output 的简写,常见的输入包括控制台(键盘)输入、文件输出;常见的输出包括控制台(显示器)输出、文件输出——这些都是很早就存在的概念。现在 IO 还包括网络IO、设备IO……只要是输入输出就可以称为 IO。

你给的这段代码只是 IO 中读取文件,也就是从文件输入的一个例子。相对于其它语言或环境中常见读文件操作来说,这里比较特殊的一点在于它是异步的,在发起读文件请求(fs.readFile)的同时,传递了一个回调((err, data) => {...})作为参数进去,要求读取文件完成之后由IO库调用这个回调,把文件内容(data)作为参数传递给回调函数,以便回调函数对其进行处理。而处理过程,即回调函数,是在发起读文件请求的时候就已经定义好的。

我估计你是对异步这个概念不是很清楚,但是如果在这里说,几句话也说不清楚,建议你去搜一下相关资料来看看。就搜 “JavaScript 异步”

fs.readFile是读文件的操作,相当于你说的I,读取的文件数据存储在data变量里面;fs.writeFile是写文件的操作(你代码里面没有涉及),相当于你说O,输出数据到一个外部文件。简单的说:I是从外部读入数据到程序,O是从程序输出数据到外部文件。(老铁,扎心了!踩我的务必说说理由)

你可能没把问题描述清楚,IO只是个词汇而已,像HTML也是一个缩写词汇。
你是不是想问: nodejs中的异步IO是怎么回事?

I/O流,即输入输出,读写文件就是对数据输入输出

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题