Node.js核心模块-fs文件系统
fs是file-system的简写,文件系统的意思。在Node中如果想要进行文件操作,就必须引入fs这个核心模块。
引入
const fs = require('fs')
fs.readFile(path[, options], callback)
- path:要读取的文件路径
- options:可选
- encoding,指定字符编码
- callback:回调函数,有两个参数,err和data
- err:读取失败返回错误对象,读取成功返回null
- data:读取成功返回读到的数据,否则返回undefined
比如文件路径错误时:err打印出错误对象,data为undefined
const fs = require('fs')
fs.readFile('./1.txt', function (err, data) {
console.log(err)
console.log(data)
})
//{ [Error: ENOENT: no such file or directory, open './1.txt'] errno: -2, code: 'ENOENT', syscall: 'open', path: './1.txt' }
// undefined
文件路径正常且读取成功时:
// null
// <Buffer 68 65 6c 6c 6f>
1.txt中文件读取成功并返回了buffer。文件中原本存储的是二进制数据0和1,二进制转为16进制即buffer。如果想转成我们认识的字符,可以通过toString()方法:
const fs = require('fs')
fs.readFile('./1.txt', function (err, data) {
console.log(data.toString())
})
// hello
或者通过字符编码
const fs = require('fs')
fs.readFile('./1.txt', 'utf8', function (err, data) {
console.log(data)
})
// hello
在读文件时建议做容错,避免读取错误data取不到报错
fs.readFile('./1.txt', function (err, data) {
if (err) {
console.log(err)
} else {
console.log(data.toString())
}
})
fs.writeFile(file, data[, options], callback)
- file:要写入的文件路径
- data:要写入的内容
- options:可选
- callback:回调函数
- err:写入成功时为null,写入错误时为错误对象
fs.writeFile('./2.txt', '你好', function (err) {
if (err) {
console.log(err)
} else {
console.log('写入成功')
}
})
如果当前目录中有2.txt,会写入“你好”,如果当前目录中没有这个文件,会创建文件并写入
fs.readdir(path[, options], callback)
- path:路径
- option:可选
- callback:回调函数
- err
- files 目录中文件名的数组
读取目录的内容
const fs = require('fs')
fs.readdir('/Users/lianglanlan/Desktop/code/study/node/www', (err, files) => {
if (err) {
return console.log('目录不存在')
}
console.log(files) //[ 'a.txt', 'apple', 'index.html', 'index1.html' ]
})
fs.existsSync(path)
- path:路径
- 返回值:布尔类型
如果路径存在,返回true,否则返回false
const fs = require('fs')
if (fs.existsSync('./1.txt')) {
console.log('该路径已存在');
}
fs.statSync(path[, options])
- path:路径
fs.stats类
提供关于文件的信息
stats.isDirectory()
如果是目录,则返回true
Node.js核心模块-fs文件系统的更多相关文章
- node.js核心模块
全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...
- node.js常用的fs文件系统
fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...
- Node.js核心模块-http
通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...
- 10.Node.js核心模块
1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...
- Node.js核心模块_全局变量、util学习
全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...
- Node.js核心模块API之文件操作
参考:https://www.runoob.com/nodejs/nodejs-fs.html 异步I/O 1,文件操作 2,网络操作 在浏览器中也存在异步操作 1,定时任务 2,事件处理 3,Aja ...
- Node.js中的fs文件系统
fs.stat 检测是文件还是目录 fs.mkdir 创建目录 fs.writeFile 创建写入文件 fs.appendFile 追加文件 fs.readFile 读取文件 fs.readdir 读 ...
- Node.js核心模块-net
net.Socket 类 socket.remotePort 访问服务器的远程端口 const http = require('http'); const server = http.createSe ...
- Node.js核心入门
前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...
随机推荐
- LeetCode19 移除倒数第N个元素
链接 Remove Nth Node From End of List 难度 Medium 描述 Given a linked list, remove the n -th node from the ...
- WTL Picture Control显示图片
1.在对话框上新建一个Picture Control ID为:IDC_STATIC_IMG 2.添加图片资源ID:IDB_BITMAP1(选中Bitmap点击导入,选择bmp图片资源) 实现: CWi ...
- GTMD并查集!
徐州的A我因为并查集写错T了整场.. int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); } GTMD!
- Go语言实现:【剑指offer】丑数
该题目来源于牛客网<剑指offer>专题. 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7.习惯上我们把1当做是第一个丑 ...
- window10 vs2013 SIFTGPU
碰到的问题: 1.一大推语法错误: 所有For_EACH_OCTAVE的地方都出现了语法错误.后来查找了一下For_EACH_OCTAVE是个啥,发现是一个宏定义,也不知道宏定义定义的好好的,为啥会编 ...
- 小cookie,大智慧
Cookie是什么?cookies是你访问网站时创建的数据片段文件,通过保存浏览信息,它们使你的在线体验更加轻松. 使用cookies,可以使你保持在线登录状态,记录你的站点偏好,并为你提供本地化支持 ...
- C#开源组件DocX处理Word文档基本操作(二)
上一篇 C#开源组件DocX处理Word文档基本操作(一) 介绍了DocX的段落.表格及图片的处理,本篇介绍页眉页脚的处理. 示例代码所用DocX版本为:1.3.0.0.关于版本的区别,请参见上篇,而 ...
- SpringCloud微服务:阿里开源组件Nacos,服务和配置管理
源码地址:GitHub·点这里||GitEE·点这里 一.阿里微服务简介 1.基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开 ...
- ShiroConfig配置文件无法通过@Value加载yml变量的解决办法
/** * 配置Shiro生命周期处理器 * 使用springboot整合shiro时,@value注解无法读取application.yml中的配置 *解决方法:将LifecycleBeanPost ...
- 修改kali软件源并配置网络
一.配置kali使用xshell连接 查看ssh服务状态 # service ssh status 开启ssh服务 # service ssh start 修改ssh配置文件 # vi /etc/ss ...