
上QQ阅读APP看书,第一时间看更新
3.6 截取文件内容
文件截取其实就是按照设定好的长度保留文件内容,其余的部分将会被舍弃。假设我们将辞海存放在文件中,当用户输入一个词时,我们找到这个词的解释并取出来给用户看。
文件系统fs模块提供了fs.ftruncate()与fs.ftruncateSync()两个方法来完成文件截取的操作。下面介绍一个通过fs.ftruncateSync()方法以同步方式实现截取文件内容的代码实例。
【代码3-8】(详见源代码目录ch03-node-fs-ftruncate-sync.js.js文件)

【代码分析】
• 本例程为了测试文件截取的操作,在代码文件目录下新建一个“txtFtruncate”子目录,然后在该子目录下创建一个名称为“ftruncateSync.txt”的文本文件。
• 第23行代码调用fs.openSync()方法打开“ftruncateSync.txt”文本文件,并将文件描述符保存在变量fd中。
• 第24行代码调用fs.ftruncateSync()方法执行文件(fd)截取的操作,截取长度为16。
• 第27行代码调用fs.closeSync()方法关闭“ftruncateSync.txt”文本文件。
在控制台中运行该Node程序,具体的输出内容如图3.8所示。

图3.8 截取文件内容
如图3.8所示,文本文件“ftruncateSync.txt”的内容被截取后,由“hello world - ftruncateSync()”变成了“hello world - ft”,表明截取操作成功完成了。