
上QQ阅读APP看书,第一时间看更新
3.14 根据文件描述符读取文件内容
本节我们向读者介绍一个功能增强的读文件应用,该应用将会根据偏移量执行读文件的操作。文件系统模块提供了fs.read()和fs.readSync()两个方法来完成功能增强的读文件操作。
下面介绍一个通过fs.readSync()方法以同步方式并根据文件描述符来读取文件内容的代码实例。
【代码3-17】(详见源代码目录ch03-node-fs-read-sync.js.js文件)


【代码分析】
• 本例程为了测试读取文件内容的功能,在代码文件目录下新建一个“txtRead”子目录,然后在该子目录下创建一个名称为“readSync.txt”的文本文件。
• 第17行通过调用fs.existsSync()方法以同步方式执行判断目标文件是否存在的操作。
• 第18行通过调用fs.open()方法执行打开文件的操作。
• 第24~44行分别调用了3次fs.readSync()方法(同步方式),执行了3种方式的读文件操作。
在控制台中运行该Node程序,具体的输出内容如图3.17所示。

图3.17 根据文件描述符读取文件内容
从图3.17中可以看到,读取到的字节数大小与fs.readSync()方法定义的完全一致,写入数据缓冲区的二进制编码与文件中的内容也完全符合(读者可自行参考ASCII编码表进行对比),说明fs.readSync()方法执行的读文件操作成功完成了。