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开发指南>一书.通 ...
随机推荐
- 实验15: STP
实验12: STP Ø 实验目的通过本实验,读者可以掌握如下技能:(1) 理解STP 的工作原理(2) 掌握STP 树的控制(3) 利用PVST 进行负载平衡 Ø 实验拓扑 SW1 和S ...
- 使用纯C++迭代器编写归并排序
第一次尝试用C++迭代器编写算法,使用的是纯迭代器 void mergeSort(vector<int>::iterator beg, vector<int>::iterato ...
- CCF_201604-1_折点计数
(a[i]-a[i-1])*(a[i]-a[i+1]) > 0 的点符合条件 #include<cstdio> #include<iostream> using name ...
- sqlserver datatime value plus random number
If we want to make some identiity value in sqlserver , we can use identity data type in a table.Howe ...
- RocketMQ重试机制和消息幂等
一.重试机制 由于MQ经常处于复杂的分布式系统中,考虑网络波动,服务宕机,程序异常因素,很有可能出现消息发送或者消费失败的问题.因此,消息的重试就是所有MQ中间件必须考虑到的一个关键点.如果没有消息重 ...
- Nginx总结(八)Nginx服务器的日志管理及配置
前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...
- 如何在 Linux 中找出 CPU 占用高的进程
1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...
- CVE-2020-0668-Windows服务跟踪中的普通特权升级错误
CVE-2020-0668-Windows服务跟踪中的普通特权升级错误 在这里中,我将讨论在Windows Service跟踪中发现的任意文件移动漏洞.从我的测试来看,它影响了从Vista到10的所有 ...
- 珠峰-6-node
1. js主线程是单线程的. 2. path.resolve 传('/')解析出一个绝对路径.
- 自动化测试中,cookie的调用方法。
以cookie为例 方法一: 将返回的cookie写到setUp()中,每次执行用例之前就会调用一次. 如: class AA(unittest.TestCase): def setUp(self): ...