node.js文件操作

介绍:fs模块是文件操作的封装,它提供了文件的读取,写入,更名,删除,遍历目录,链接POSIX文件系统操作。与其他模块不同的是,fs模块中所有的操作都提供了异步和同步两个版本,例如读取文件内容函数异步方法:readFile(),同步方法readFileSync()。

    一、fs.readFile(filename,[encoding],[callback(err,data)])是最简单的读取文件的函数。

参数:filename:读取的文件名。
encoding     文件的字符编码 ANSI
callback     回调函数提供两个参数err和data,err表示有没有错误发生,data是文件内容。如果指定了encoding,data是一个解析后的字符串,否则将会以buffer形式表示的二进制数据。
案例:readFile.js
var fs=require('fs');
fs.readFile('content.txt',function(err,data){if(err){console.log(err);}else{console.log(data);}
});
fs.readFile('content.txt','UTF-8',function(err,data){if(err){console.log(err);}else{console.log(data);}
});try{var data=fs.readFileSync('content.txt','UTF-8');console.log(data+"ͬ我运行啦");
}catch(e){console.log(e)
}
在项目目录下新建一个content.txt文件,里面随便写的内容,执行readFile.js可以看见获取了文件内容,该读取方式为异步读取文件内容
可以看到上面代码执行顺序,readFile在readFileSync后面执行,也就是说前面为异步读取文件后面为同步读取

   二、fs.readFileSync(filename,[encoding])

同步读取文件它棘手的参数和fs。readFile相同,而读取到的文件内容会以函数返回值的形式返回,如果有错误发生,fs将抛出异常,你需要try和catch捕获并处理异常

    三、fs.open(path,flags,[mode],[callback(err,fd)])是POSIXopen函数的封装,与C语言标准库中的fopen函数类似,它接受两个必选参数,

path为文件路径,
flags可以为以下值:
r:以读取模式打开文件
r+:以读写模式打开文件
w:以写入模式打开文件,如果文件不存在则创建
w+:以读写模式打开文件,如果文件不存在则创建
a:以追加模式打开文件,如果文件不存在则创建。
a+:以读取追加模式打开文件,如果不存在则创建。
mode:用于创建文件时给文件指定权限,默认是0666,回调函数将会传递一个文件描述符fd
0666:文件权限值POSIX系统中对文件读取和访问权限的规范,通常用八进制数表示,如:0754标识文件所有者权限是7(读,写,执行),同组用户权限是5(读,执行)其他用户的权限是4(读)。   
fd:文件描述是一个非负整数,表示操作系统内核为当前进程所维护的打开文件的记录表索引。

       四、fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])是POSIX中read函数的封装,相比readFile提供了更底层的接口。从指定的文件描述fd中读取数据并写入

fd:指定的文件描述
offset是buffer的写入偏量值
buffer指向的缓存区对象。               
length:读取的字节数
position:文件读取的起始数,如果为null,则从当前文件指针读取。
回调函数传递err,bytesRead和buffer,分别标识读取的字节数和缓冲区对象。
openReadFile.js
var fs=require('fs');
fs.open('content.txt','r',function(err,fd){if(err){console.log(err);return;}var buf=new Buffer(8);fs.read(fd,buf,0,8,null,function(err,bytesRead,buffer){if(err){console.log(err);return;}		console.log('bytesRead   '+bytesRead);console.log(buffer);});
})

API地址:http://nodejs.org/api/fs.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

phoenix 使用详细介绍 创建二级索引

phoenix 关联hbase 基本使用参考:https://blog.csdn.net/zhangshenghang/article/details/97491597 Phoenix 创建二级索引 hbase中有表test_article ,在表空间 test_ns ,列簇 fn 下有字段 url , text , uid ,name 连接phoenixphoenix-sqlline.py hostname:2181:/hb…

node.js详解Http服务器

概念:Node.js提供了http模块。其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端。http.server是一个基于事件的HTTP服务器。内部有C实现。接口由JavaScript封装。http.request则是一个HTTP客户端工具。用户向服务器发送请求。一、HTTP服务器 http.Server实现的…

node.js http客户端

一、http模块提供了两个函数http.request和http.get,功能是作为客户端向HTTP服务器发起请求。 Ext.Ajax.request({},function(response))1.http.request(options,callback)发起HTTP请求,接受两个参数,option是一个类似关联数组的对象&#xf…

CDH kerberos 认证,安全认证

环境centos 7.4 安装KDC服务 yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation 修改配置文件 vi /etc/krb5.conf 默认如下 修改为 # Configuration snippets may be placed in this directory as well includedir /etc/krb5.conf.d/[logging]default…

虚拟继承和虚表

普通继承和虚拟继承类的大小变化: 普通继承: 虚拟继承: 类A和类B大小为: 由此可见:1、类中静态成员不会影…

Kerberos 下运行spark 报错 Requested user hdfs is not whitelisted and has id 995,which is below the minimu

异常如下 main : run as user is hdfs main : requested yarn user is hdfs Requested user hdfs is not whitelisted and has id 995,which is below the minimum allowed 1000 问题原因:是由于Yarn限制了用户id小于1000的用户提交作业; 解决方法&a…

kerberos 下运行spark 报错 Requested user hdfs is banned

启动运行报错 main : run as user is hdfs main : requested yarn user is hdfs Requested user hdfs is bannedFailing this attempt. Failing the application.ApplicationMaster host: N/AApplicationMaster RPC port: -1queue: root.defaultstart time: 1565170753121fina…

node.js路由控制

一、工作原理 当通过浏览器访问app.js建立的服务器时,会看到一个简单的页面,实际上它已经完成了许多透明的工作,当访问http://localhost:3000,浏览器会向服务器发送请求,包括请求的方法、路径、HTTP协议版本和请求头信…

node.js模块引擎

一、什么是模版引擎 模版引擎是一个从页面模版根据一定的规则生成HTML的工具,PHP首发,随后出现了ASP、JSP都沿用这个模式,即建立一个HTML页面模版,插入可执行的代码。运行时动态生成HTML。缺点: 页面功能逻辑与页面布局…

HBase ACL管理 Hbase 权限管理

场景:hadoop集群已经进行kerberos认证 启动Hbase相关配置Hbase权限分为以下五种:Read(R) : 可以读取给定范围内数据的权限 Write(W) : 可以在给定范围内写数据 Executor(X) : 可以在指定表执行Endpoints类型的协处理 Create(C) : 可以在给定范围内创建和…

MySql索引的原理

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B树。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用&#xff08…

Hadoop Kerberos 认证下 Sentry 安装 + Sentry 权限设置使用

目录 一、安装Sentry 1.MariaDB中创建sentry数据库 2.CDH中添加sentry 服务 3.hive配置 启动Sentry 4.Impala配置 启动Sentry 5.Hue配置 启动Sentry 6.Hdfs配置 启动Sentry 7.重启服务,使配置生效 二、Sentry权限测试 1.创建hive超…

mongodb最详细的安装与配置

今天晚上才装好,我觉得有必要写这篇文章给你们分享一下 我是看点击打开链接这位博主的文章才装好的其中我想引用里面内容从头到尾来给你们 分享一下流程 第一步:下载mongodb https://www.mongodb.com/download-center#community 第二步:m…

vue.js安装与配置

我们在前端学习中,学会了HTML、CSS、JS之后一般会选择学习一些框架,比如Jquery、AngularJs等。这个系列的博文是针对于学习Vue.js的同学展开的。 1.如何简单地使用Vue.js 如同以前我们学过的Jquery一样,我们在程序中使用Vue.js时也可以使用直…

Hbase WALs(HLog) 文件存储,查看

WALs(HLog) 存储 HLog 存储位置是在,hbase配置目录下WALs目录,默认为 /hbase/WALs 与 /hbase/oldWALs /hbase/WALs : 存储未过期的日志/hbase/oldWALs : 存储已过期的日志 这里先查看WALs日志目录,目录格式为:hostname1 为 …

Elasticsearch 6.x 下载安装

下载ES 下载ES安装包上传至服务器,地址为: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz 上传完成后解压 tar -zxvf elasticsearch-6.1.0.tar.gz 安装JDK 这里使用jdk8,官网下载安装即可&#xf…

抽象工厂模式-与-工厂方法模式区别

首先来看看这两者的定义区别: 工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类 抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类 个人觉得这个区别在于产品&#x…

Centos7.x 安装 CDH 6.x

前置条件 ntp服务安装防火墙关闭 执行以下优化代码 systemctl stop firewalld.service echo "* soft nofile 128000" >>/etc/security/limits.conf echo "* hard nofile 128000" >>/etc/security/limits.conf echo "* so…

Windows IEDA 编译Hbase源码报错 - 无法执行shell脚本

windows 下编译 hbase源码,报错 [ERROR] Command execution failed. java.io.IOException: Cannot run program "bash" (in directory "D:\File\ideaWorkspace\hbase-1.4.10-src\hbase-1.4.10\hbase-shaded\hbase-shaded-check-invariants\target\…

最新版 VMware 安装,虚拟机安装, Ubuntu可视化linux系统安装

一、下载 地址:https://www.vmware.com/cn.html 二、安装VM 选择相应配置,一直下一步即可 双击打开VMware,输入密钥:CG392-4PX5J-H816Z-HYZNG-PQRG2 Ubuntu 镜像下载地址: https://www.ubuntu.com/download/desktop/…