位置: 编程技术 - 正文

详解nodejs 文本操作模块-fs模块(二)(nodejs word)

编辑:rootadmin

推荐整理分享详解nodejs 文本操作模块-fs模块(二)(nodejs word),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs 文档,node.text,node.text,nodejs writestream,node.text,nodejs writefile,nodejs 文档,nodejs writefile,内容如对您有帮助,希望把文章链接给更多的朋友!

前一篇学习了文件的打开和关闭,文件操作总不能只包含打开和关闭吧,这里就开始文件的读写操作。

fs模块方法

1:read和readSync方法

该方法,是从文件的指定位置处读取文件,一直读取到文件底部,然后江都区到的内容输出到一个缓存区,使用方法如下:

在read方法中,支持6个参数:

fd参数,是文件描述符,是open方法的回调函数中获取到的,是一个数字。 buffer,是一个buffer对象,用于指定将文件数据读取到那个缓存区,如果不定义,则会生成一个新的缓存区,进行存放新读取到的数据。 offset,是一个整数值,用于指定向缓存区中写入数据时的开始位置,以字节为单位。其实也就是,读入到缓存中的数据,从buffer对象的第几个元素开始写入。 length,是一个整数值,表示读入的数据,多少数据写入到buffer对象中去,要保证不能超出buffer的容纳范围,否则会抛出一个范围异常。 position,是一个整数值,表示,从文件中的哪个位置,开始读取数据,如果设置为非0的整数,则从该整数所示的位置,读取长度为length的数据到buffer对象中。 callback,回调函数,当读取文件成功之后,把执行该函数,该回调函数支持三个参数:

上面把参数的含义以及回调函数的定义,都说明了一下,这里就看一个示例吧:

一般情况下,异步调用时,回调函数中,只有两个参数存在,第一个参数为err对象,第二个参数为操作之后的数据,可是,这里有三个数据,那么在同步时,什么才是返回值呢?

所以,要做如下的测试:

返回的是bytesRead的值,并没有返回buffer对象,可以想象,因为buffer对象是原本传入的buffer对象,依然可以通过传入的buffer对象,直接访问到重写数据之后的buffer对象。

但是,有个问题就来了,如果没有传入buffer对象呢?这又要如何呢?这个问题暂且别过,因为这个问题,并没有在一些API文档中说明,在书中也没有看到这个用法,但是接下来,我们去分析一下源码,就能发现,除了上述的两种常用的方法之外,还有其他的使用方式。

详解nodejs 文本操作模块-fs模块(二)(nodejs word)

OK,先看下read方法的源码:

看了上面的源码分析,那么也就发现了另外一种使用read的方法了,即,不输入buffer和offset,添加encoding的5个参数的使用,举一个最简单的实例吧。

注意,当不传入buffer对象时,回调函数中的三个参数也相应的有了变化,详情请看前面的实例代码中,回调函数的参数以及源码中的注释。

继续看下readSync的源码,在本文的前面,也给出了一个readSync的示例,当传入buffer对象时,返回值是读取到真是字节数,那么,既然read方法可以省略buffer对象,改为返回读取到的字符串,那么readSync方法呢?这个就让我们看下源码中,是如何处理这些数据的。

那么接下来看下,如果不传入buffer对象时的一个示例吧:

OK,到这里,关于read和readSync方法的使用及一些原理性东西,也基本说完了。

2:write和writeSync方法

有读取的方法,那么就必然有写入的方法了,要么flag=w不就无用了么。并且看到了前面的关于read的一些使用,那么接下来,对于write的使用,看起来就变得更加的简单了,现在直接看下示例:

从上面这个示例可以看出,write方法和read方法,使用基本是完全一样的,只是一个是在读取文件一个是在写入文件,前提也是需要你在open打开文件时,使用的flag打开文件方式,要支持读写才行。

既然,write和read是相同的使用方法,那么也可以不定义buffer的直接写入数据,所以,可以继续看下面的这个示例:

这里就不再分析源码了,基本上write的源码和read的源码处理方式类似,只是在最后调用C++接口不同而已,所以这里也就不再占用空间了。有兴趣的可以直接去nodejs的github源码中,查看:fs.js。

关于writeSync的用法,用法和write是相同的,只是不需要回调函数,并且也不需要返回写入的数据,所以,和readSync的区别,也就是,readSync在不传入buffer时,会返回一个长度为2的数组,而writeSync不受buffer对象的影响,只要写入成功,就会返回写入的真实字节数。不加示例,不加源码分析,请参考上面的read方法,readSync方法和write方法,也可以参考nodejs的API文档:Nodejs的API中文版。

总结

本篇的read和write是文档操作的基础,是属于最基本的操作,也是最重要的操作,本篇也是属于fs模块中的基本使用方法,对于以后学习其他方法,以及更好的了解fs模块有重要的作用,好好学习,天天向上。

标签: nodejs word

本文链接地址:https://www.jiuchutong.com/biancheng/374124.html 转载请保留说明!

上一篇:学习 NodeJS 第八天:Socket 通讯实例(nodejs v8)

下一篇:详解nodejs 文本操作模块-fs模块(一)(nodejs writefile)

  • 增值税退税账务处理最新规定
  • 固定资产累计折旧会计科目
  • 未满一年的公司可以注销吗
  • 环保税申报表怎么填制
  • 农业企业增值税纳税实务实训心得
  • 先付款后开票是预付吗
  • 外账成本倒推表格
  • 增值税免退税计算方法
  • 股权转让需要缴纳企业所得税吗
  • 发出存货的计价方法对企业财务状况和经营成果有何影响
  • 企业收到投资款怎么处理
  • 开出转账支票怎么入账
  • 固定资产常用计算公式
  • 汇算清缴前发票未到
  • 材料采购定期结算表
  • 企业认购普通股100万股作为交易性金融资产管理
  • 土地受让人是什么意思
  • 暂估费用时可以抵扣吗
  • 公司委托其他公司代缴社保合法吗
  • 只要有收入就要交印花税吗
  • 外汇汇率在其中扮演什么角色?
  • 会计所得税和税法所得税
  • 暂估发票未到年报怎么调
  • 跨期间收入如何确定当期收入
  • 单位自办食堂为单位职工提供餐饮服务要交增值税吗
  • 预付保险费属于什么会计科目
  • 2019年基金市场
  • 应付职工薪酬在借方是什么意思
  • 王者荣耀进不去怎么回事最新
  • 代开专票名称没有填写可以报销吗
  • 怎么更新电脑系统win10
  • thinkphp d方法
  • php实现的mongodb操作类实例
  • 筹建期间费用计什么科目
  • 借条和欠条的区别 法律效力
  • 房产开发企业涉及税种
  • 纳税申报方式的税务申报工作常规流程图
  • 圣帕特里克的传说
  • 供热企业的税收分类编码
  • 工资储备金制度
  • php遍历结果集
  • 生产成本二级科目会计分录
  • webpack插件执行顺序
  • 二元运算例子
  • PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络
  • 企业销售旧车增值税处理
  • 总公司中标后走账怎么办
  • sql有数据保护功能
  • 融资租赁的固定资产
  • 经营范围没有的项目开票了会怎么样
  • 代购进口货物垫付方案
  • 从物资公司购入原木的进项税额
  • 定期定额征收和核定征收哪个好
  • 视同销售收入是纳税调整项目吗?
  • 对公账户是怎样的
  • 食堂员工私自拿东西怎么办
  • 退休人员的返聘合同
  • 固定资产中如何计算折旧
  • 电信电子发票什么格式
  • 管理费用是负数怎么处理
  • sql server 判断数据是否存在
  • MSSQL 2005/2008 日志压缩清理方法小结
  • mysql获取日期年份
  • 电脑出现bootbcd
  • linux系统密码设置
  • VirtualBOX给CentOS建共享文件夹的方法
  • windows保护电脑
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • linux命令文件移动并改名
  • 导入extjs、jquery 文件时$使用冲突问题解决方法
  • node.js的流的作用
  • python 简单例子
  • android适配器是什么意思
  • 菜鸟教程安卓
  • Android eclipse for mac redo 快捷键
  • javascript test
  • 个人所得税扣缴手续费退付是什么意思
  • 中国的消费税是怎么算的
  • 广东省广州电子税务局
  • 开展志愿服务关爱活动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设