【node.js学习笔记】的fs内置模块

https://www.bilibili.com/video/BV11t411k79h?spm_id_from=333.999.0.0

node.js的fs内置模块

引用方式:

const fs = require('fs')
注意:fs里面的方法是异步
  1. fs.stat:检测目标(指定路径)是文件还是目录
fs.stat('./catalogue', (err, data) => {
	console.log(`属于文件:${data.isFile()}`) // 返回boolean值
	console.log(`属于目录:${data.isDirectory()}`) // 返回boolean值
})
  1. fs.mkdir:创建目录
/*
path 创建路径
mode 目录权限(读写权限),默认777
callback 回调,传递一场参数err
*/
fs.mkdir('./css', (err) => { // 如果目录已存在 会报错
	if (err) {
		console.log(err)
		return
	}
	console.log('创建成功')
})
  1. fs.writeFile:创建写入文件
/*
filename 文件名称
data 写入的内容(string | buffer)
options 数组对象 包含:
	encoding 可选值,默认'utf-8'
	mode 文件读写权限 默认438
	flag 默认值'w'
callback 回调,传递一个异常参数err
*/
fs.writeFile('./catalogue/index.html', 'hello nodejs',(err) => { // 如果文件已存在 会替换旧文件
	if (err) {
		console.log(err)
		return
	}
	console.log('创建写入文件成功')
})
  1. fs.appendFile:追加文件内容
fs.appendFile('./css/base.css', 'body{color:red}',(err) => {
	if (err) {
		console.log(err)
		return
	}
	console.log('appendFile成功')
})
  1. fs.resdFile:读取文件
fs.appendFile('./html/index.html',(err, data) => {
	if (err) {
		console.log(err)
		return
	}
	console.log(data)
	console.log(data.toString()) // 把buffer转化为string类型
})
  1. fs.readdir:读取目录
fs.appendFile('./html',(err, data) => {
	if (err) {
		console.log(err)
		return
	}
	console.log(data)
})
  1. fs.rename 重命名/移动文件
fs.rename('./css/aaa.css','./css/index.css',(err) => { // 旧路径、新路径及名称、回调
	if (err) {
		console.log(err)
		return
	}
	console.log('重命名成功')
})
  1. fs.rmdir:删除目录
fs.rename('./css',(err) => { // 目录存在文件时不能删除目录 需要先删除里面的文件
	if (err) {
		console.log(err)
		return
	}
	console.log('删除目录成功')
})
  1. fs.unlink:删除文件
fs.unlink('./css/aaa.css',(err) => {
	if (err) {
		console.log(err)
		return
	}
	console.log('删除文件成功')
})
  1. fs.createReadStream:从文件流中读取文件
const readStream = fs.createReadStream('./css/test.txt') // 创建读取流
let count = 0
let str = ''
readStream.on('data', (data) => { // 监听读取状态(数据流是一点一点读取的)
	str += data
	count++
})
readStream.on('end', (data) => { // 监听读取完成
	console.log(str)
	console.log(count)
})
readStream.on('error', (data) => { // 监听错误信息
	console.log(error)
})
  1. fs.createWriteStream:写入文件
const fs = required('fs');
let str = ''
for(let i = 0;i<500;i++0) {
	str += '我是从数据库获取的数据,我想要保存起来\n'
}
const writeStream = fs.createWriteStream('./data/test.txt')
writeStream.write(str)
// 标记写入完成
writeStream.end()
writeStream.on('finish', ()=>{ // writeStream.end()必须写上才能触发
	console.log('写入完成')
})
  1. 管道流:主要用于复制大文件
const fs = required('fs');
// 创建一个可读流
const readStream= fs.createReadStream('input.txt')
// 创建一个可写流
const writeStream = fs.createWriteStream('output.txt')

// 管道读写操作
// 读取input.txt文件内容,并将内容写入到output.txt文件中
readStream.pipe(writeStream)
console.log('程序执行完毕')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值