广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >详谈Node.js之操作文件系统
  • 161
分享到

详谈Node.js之操作文件系统

文件系统操作Node 2022-06-04 17:06:28 161人浏览 八月长安
摘要

1. 同步方法与异步方法 在node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。,在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法。这两者区别是:同步方法立即返回

1. 同步方法与异步方法

node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。,在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法。这两者区别是:同步方法立即返回操作结果,在使用同步方法执行的操作结束之前,不能执行后续代码,代码类似如下:


Var fs = require('fs')
var data = fs.readFileSysnc('./index.html','utf8')
//等待操作返回结果,然后利用该结果
console.log(data)

而异步方法将操作结果作为回调函数的参数进行返回,在方法调用之后,可以立即执行后续代码,代码如下:


var fs = require('fs')
fs.readFile('./index.html','utf8'.function(err,data){
  //操作结果作为回调函数的第二个参数返回
  console.log(data)
})

另外,当使用如下所示的方法调用多个异步方法时,并不能确保操作结果的返回顺序


fs.readFile('./file.html',function(err,data){
  //回调函数代码
  })
fs.readFile('./otrher.html',function(err,data){
  //回调函数代码
  })

在上述代码中,我们同时执行两个文件的读取操作,但是并不确保哪个操作结果先辈返回。如果要确保在一个问价读取完毕后再读取两一个文件,我们应使用如下方法:


fs.readFileSync('./file.html',function(err,data){
  //回调函数代码
  })
fs.readFileSync('./otrher.html',function(err,data){
  //回调函数代码
  })

2. 对文件执行读写操作

2.1 文件的完整读写

可以使用readFile方法或者readFileSync方法完整读取一个文件:


fs.readFile(filename,[options],callback)
//第一个参数:必选指定读取文件的完整文件路径及文件名
第二个参数:指定读取文件时需要使用的选项,在该参数值对象中可以使用flag属性指定对该文件采取什么操作,默认为‘r'
option:
  flag'r':读取文件,如果文件不存在则抛出异常
    'r+':读取并写入文件,如果文件不存在则抛出异常
    'rs':以同步方式读取文件并通知操作系统忽略本地文件系统缓存,如果文件不存在则抛出异常。因为本属性值忽略本地缓存,适用于操作网络文件系统,但由于其对性能产生一定的负面影响,不建议在其他环境下使用
    'w':写入文件,如果文件不存在则创建文件,如果文件存在则清空文件内容
    'wx':作用与'w'类似,但以排他方式写入文件
    'w+':读取并写入文件。如果不存在则创建文件,如果该文件已存在则清空文件内容       
    'wx+':作用与'w+'类似,但是以排他方式写入文件       
    'a':追加写入文件,如果文件不存在则创建文件
    'ax':作用与'a+'类似,但是以排他方式打开文件
  encoding:
    utf8,ascii,base64,
callback(err,data){
  //回调函数代码略
}
//第一个参数为读取文件操作失败时触发的错误对象
第二个参数值为读取到的文件内容

在使用同步方法读取文件时,使用readFileSync方法:


var data = fs.readFileSync(filename,[options])

eg:


var fs = require('fs')
try{
  var data = fs.readFileSync('./text.txt','utf8')
  //在控制台中输出文件内容
  console.log(data) 
}catch(ex){
  console.log('读取文件时发生错误')
}

在完整写入一个文件时,利用fs模块中的writeFile方法或者writeFileSync方法


fs.writeFile(filename,datda,[options],callback)
//第一个参数:用于指定被写入文件的完整文件路径及文件名
第二个参数:用于指定需要写入的内容,参会素可以为一个字符串或一个Buffer对象
第三个参数:指定写入文件时需要的选项
    flag属性:用于指定该文件采用何种操作,默认为'w'
    mode属性:指定当文件被打开时对文件的读写权限,默认为0666(可读写),第一位必须为0,第二位用于规定文件或目录所有者的权限,第三位为文件或目录所属用户组的权限,第四位为其他用户权限
      1:执行权限
      2:写权限
      4:读权限
    encoding属性:指定使用何种编码格式来写入文件,:utf8 ascii base64
    
callback(err){
  //回调函数代码
}

在使用同步方式写入文件时,使用writeFileSync方法:


fs.writeFileSync(filename,data,[options])

在将一个字符串或一个缓存区中的数据追加到一个文件底部时,可使用fs模块中的appendFile或者appendFildSync方法


fs.appendFile(filname,data,[options],callback)
fs.appendFileSync(filename,data[options])

2.2 从指定位置处开始读写文件

首先需要使用fs模块中的open方法或者openSync方法打开文件,


fs.open(filename,flags,[mode],callback)
其中callback参数为:function(err,fd){
            //回调函数代码
          }
//第一个参数为打开文件操作失败时所触发的错误对象,
第二个参数为一个整数值,代表打开文件时返回的文件描述符

使用同步方式打开文件时,使用openSync方法:


var fd = fs.openSync(filename,flag,[mode])

在打开文件之后,可以在回调函数中使用fs模块中的read方法或者readSync方法从文件的指定位置处读取文件,也可以使用fs模块中的write方法或者writeSync方法从文件的指定处开始写入数据

首先介绍read方法:


fs.read(fd,buffer,offset,length,position,callback)
//第一个参数:open方法所所使用的回调函数中返回的文件描述符或openSync方法返回的文件描述符;
第二个参数:英语指定将文件数据读取到哪个缓存区;
第三个参数:整数,用于指定向缓存区中写入数据时的开始位置,以字节为单位
第四个参数:整数,指定从文件中读取的字节数
第五个参数:整数,指定读取文件时开始位置
callback(err,bytesRead,buffer){
  //回调函数代码
}
err:读取文件操作失败时触发的错误对象
bytesRead实际读取的字节数
buffer:被读取的缓存区对象

使用同步方式打开文件时,使用readSync方法:


var byteRead = fs.readSync(fd,buffer,offset,length,position)

在打开文件后,使用fs模块中的write方法或者writeSync方法从一个缓存区中读取数据并且从文件的指定处开始吸入这些数据


fs.write(fd,buffer,offset,length,position,callback)

  其中callback为function(err,written,buffer){
            //回调函数代码
        }
eg:
 1 var fs = require('fs')
 2 var buf = new Buffer('我喜欢编程')
 3 fs.open('./message.txt','w',function(err,fd){
 4     fs.write(fd,buf,3,9,0,function(err,written,buffer){
 5         if(err)console.log("写文件操作失败")
 6         console.log("写文件操作成功")
 7     })
 8 })

在使用同步方式写入文件时,使用writeSync 方法


fs.writeSync(fd,buffer,offset,length,position)

在fs模块中,使用close方法与closeSync方法以关闭文件


fs.close(fd,[callbcak])
fs.closeSync(fd)

调用close方法前,可以利用fsyn方法将缓存区内容全部写入文件,防止出现遗漏数据


fs.fsyn(fd,[callback])

以上这篇详谈node.js之操作文件系统就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 详谈Node.js之操作文件系统

本文链接: https://www.lsjlt.com/news/12400.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详谈Node.js之操作文件系统
    1. 同步方法与异步方法 在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。,在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法。这两者区别是:同步方法立即返回...
    99+
    2022-06-04
    文件系统 操作 Node
  • Node.js之操作文件系统的示例分析
    这篇文章给大家分享的是有关Node.js之操作文件系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 同步方法与异步方法在Node.js中,使用fs模块来实现所有有...
    99+
    2022-10-19
  • node.js文件系统之文件写入实例详解
    目录前言一、语法格式二、参数解读三、实例演示1.打开vsc创建一个js文件,保存在自己的文件夹内2.在js文件中写入一下代码3.运行4.结果显示总结前言 Hello,各位小伙伴们,我...
    99+
    2023-03-06
    nodejs文件写入 nodejs读取文件内容 nodejs流写入文件
  • Node.js文件操作详解
    Node有一组数据流API,可以像处理网络流那样处理文件,用起来很方便,但是它只允许顺序处理文件,不能随机读写文件。因此,需要使用一些更底层的文件系统操作。 本章覆盖了文件处理的基础知识,包括如何打开文件,...
    99+
    2022-06-04
    详解 操作 文件
  • Linux之操作文件的系统调用
    目录1.打开文件参数介绍2. 读文yXLlS件3. 写文件4.关闭分析题练习题系统调用和库函数的区别需要引入的头文件: #inlcude<unistd.h> 1.打开文件 打开一个已存在的文件 i...
    99+
    2022-06-04
    linux文件操作系统调用 linux操作文件
  • node.js文件操作系统的示例分析
    这篇文章给大家分享的是有关node.js文件操作系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:文件读取普通读取同步读取var fs =...
    99+
    2022-10-19
  • Node.js基础入门之缓存区与文件操作详解
    目录缓存区1. 什么是缓存区?2. 创建指定长度的缓存区3. 通过数组创建缓存区4. 通过字符串创建缓存区5. 读写缓存区6. 复制缓存区文件操作1. 异步直接读取2. 同步直接读取...
    99+
    2022-11-13
  • Python文件操作之二进制文件详解
    目录1.二进制读取模式rb读取模式将读取到的内容写入到文件总结1.二进制读取模式 rt 读取文本文件(默认值) rb 读取二进制文件 file_name = ...
    99+
    2022-11-12
  • Node.js Streams文件读写操作详解
    Node.js 天生异步和事件驱动,非常适合处理 I/O 相关的任务。如果你在处理应用中 I/O 相关的操作,你可以利用 Node.js 中的流(stream)。因此,我们先具体看看流,理解一下它们是怎么简...
    99+
    2022-06-04
    详解 操作 文件
  • 从零学习node.js之文件操作(三)
    一、文件操作 在文件操作里,主要是有文件读写,创建、移动文件等。 1.1 读取文件 读取文本文件时,如.txt, .js, .json等文件,直接使用readFile就可以获取文件的内容。 // ...
    99+
    2022-06-04
    操作 文件 node
  • Android开发之文件操作详解
    本文实例讲述了Android开发之文件操作。分享给大家供大家参考,具体如下:目前,几乎所有的设备都会涉及到文件的操作,例如什么电脑,手机等设备。Android的文件操作和电脑是比较类似的,既可以存储在手机内置的存储器里也可以是sd卡。在这篇...
    99+
    2023-05-30
    android 文件操作
  • node.js中fs文件系统目录操作与文件信息操作的示例分析
    这篇文章主要介绍node.js中fs文件系统目录操作与文件信息操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!目录操作如果存在该目录,就创建失败同步创建目录fs.mkdi...
    99+
    2022-10-19
  • Python全栈之路系列之文件操作
    Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除了file函数。 Python...
    99+
    2023-01-31
    之路 操作 文件
  • 详解C语言之文件操作(上)
    目录什么是文件程序文件数据文件文件名文件类型文件缓冲区文件指针 文件的打开和关闭输入和输出总结什么是文件 磁盘上的文件就是文件。 在程序设计中,我们一般谈的文件有两种:程序...
    99+
    2022-11-12
  • 详解C语言之文件操作下)
    目录文件的随机读写fseek函数ftell函数rewind函数文件结束判定feof函数和ferror函数总结文件的随机读写 之前的函数只能实现顺序读写,而实现随机读写需用fseek函...
    99+
    2022-11-12
  • Node.JS文件系统解析实例详解
    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 ...
    99+
    2022-06-04
    文件系统 详解 实例
  • node.js文件系统之文件写入的方法是什么
    本文小编为大家详细介绍“node.js文件系统之文件写入的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js文件系统之文件写入的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、语...
    99+
    2023-07-05
  • Python高级文件操作之shutil库详解
    前言 什么算是高层的文件操作呢? 普通的文件操作,我们一般只涉及创建文件,文件夹以及写入文件等等。假如我现在需要复制一个文件的内容到另一个文件之中,用pathlib等都只能先打开复制文件,然后进行将其读出来保存,然后...
    99+
    2022-06-02
    Python shutil库 python标准库
  • C语言进阶之文件操作详解
    目录0. Intro1. 文件名2. 文件的打开和关闭2.1 文件指针2.2 打开和关闭文件3. 文件顺序读写3.1 利用以上函数实现拷贝文件操作3.2 二进制的读写3.3 格式化输...
    99+
    2022-11-13
  • Node.js测试中的Mock文件系统详解
    Mock文件系统相关的工具包括: Mock fs 模块的工具mock-fs 。 Mock require 模块的工具mock-require 。 安装 mock-fs和 mock-req...
    99+
    2022-06-04
    文件系统 详解 测试中
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作