I/O
学习Node时对I/O的理解有一点困惑, 于是学习并整理了一些相关的知识.
I/O定义: I/O即Input/Output 输入/输出,是信息处理系统(计算机)和外部世界(人类或其他信息处理系统)之间的通信.
输入: 信息处理系统接收到的信号或信息.
输出: 信息处理系统发出的信号或信息.
I/O设备和I/O操作
人类或其他处理系统可以通过I/O设备与计算机进行交互,比如,键盘鼠标是一台计算机的输入设备,执行输入操作,显示器和打印机是输出设备,执行输出操作.有些I/O设备可以同时执行输入和输出操作,比如调制解调器(modem,我们常说的猫就属于调制解调器中的一种类型),它执行对数字信号和模拟信号的输入输出操作.
编程语言中的I/O
和大多数编程语言不同,JavaScript语言本身没有I/O(输入输出)的概念.它是运行在宿主环境中的脚本语言,由宿主环境提供与外部通信的机制.最常见的宿主环境是浏览器,这些宿主环境中都含有JavaScript解释器,在Node和浏览器中的解释器是V8引擎.而在Node中有I/O的概念.
File I/O
我们常用文本编辑器或Office软件等创建文件,但很多时候也需要利用应用程序创建文件,修改文件内容.(概念问题:所以并不是编程语言操作文件,而是利用编程语言写出的程序操作文件)
文件输入指被写入文件的信息,文件输出指从文件中读取的信息.将输入输出这两个概念与屏幕的输入输出联系起来会更容易理解.
文件的类型
文件是物理硬盘中存储信息的地方.执行文件的I/O操作时应了解以下两种类型:
a. 文本文件(Text Files)
扩展名为.txt,可以通过文本编辑器创建,修改或删除其中的文本,极易维护,很容易阅读,但安全性低,占用内存大.
b. 二进制文件(Binary Files)
扩展名为.bin, 数据以二进制的形式存储,可以存储大量的信息,但不易阅读,安全性比文本文件高.
文件操作
a. 创建新文件
b. 打开已存在计算机中的文件
c. 关闭文件
d. 从文件中读写信息
待解决问题
- 标准I/O与非标准I/O的区别?
- High-level I/O(Stream-level I/O)和Low-level I/O, Node中是否都是High-level I/O?
参考