Node.js-fs模块

fs模块的方法分类

按操作类型分类

  • fs.mkdir fs.writeFile fs.appendFile
  • fs.readFile fs.readfir fs.stat fs.exists
  • fs.rmdir fs.unlink
  • fs.rename

按操作对象分类

  • 文件 fs.readFile fs.writeFile fs.appendFile fs.unlink
  • 目录 fs.readdir fs.mkdir fs.rmdir
  • 其他 fs.stat fs.rename fs.exists

fs模块的方法列表

fs.exists() 判断文件或者目录是否存在

var filePath = "./docs/log/log.txt"
var dirPath = "./docs/image"
fs.exists(filePath, (data) => {
	// exists方法的回调函数 只有一个参数 表明输入的目录或文件是否存在
	console.log(data) // true 或者 false
})

fs.stat() 检测是文件还是目录

fs.stat('../module/index.js', (err, data) => {
    if (err) {
        console.log(err)
        return
    }

    console.log(`是文件:${data.isFile()}`)
    console.log(`是目录:${data.isDirectory()}`)
})

fs.mkdir() 创建目录

/**
 * path 将创建的目录路径
 * mode 目录的权限(读写权限),默认777
 * callback 回调函数,传参异常的err
 */

fs.mkdir("./css", (err) => {
    if (err) {
        console.log(err)
        return 
    }

    console.log('目录已经创建成功')
})

fs.writeFile() 创建并写入文件

// 如果文件已经存在,会直接覆盖上一次的内容
fs.writeFile("./css/public.css", '.text-center{text-align:center}', (err) => {
    if (err) {
        console.log(err)
        return
    }
    console.log('文件创建并写入成功')
})

fs.appendFile() 追加文件内容

// 如果文件存在,那么会在文件末尾 追加内容
// 如果文件不存在,那么会先创建文件,在写入文件
// appendFile无法自动创建文件夹
fs.appendFile('./css/theme.css', `.custom-165DAA .bg-default {
    background-color: #165DAA;
}\n`, (err) => {
    if (err) {
        console.log(err)
        return
    }
    console.log('内容追加成功')
})

fs.readFile() 读取文件

fs.readFile("./css/theme.css", function(err, data) {
    if (err) {
        console.log(err)
        return
    }
    console.log(data.toString()) // 把 Buffer转换成string类型
})

fs.readdir() 读取文件和目录 只会读取一层 不会递归读取

fs.readdir('./css', function(err, data) {
    if (err) {
        console.log(err)
        return
    }
    console.log(data)
})

fs.rename() 重命名 或者 移动文件

// 旧文件和新文件所在的目录必须存在 无法自动创建
fs.rename('./css/idex.css', './js/index.css', (err) => {
    if(err) {
        console.log(err)
        return
    }
    console.log('rename成功')
})

fs.rmdir() 删除目录

// 目录中存在文件 无法删除 只有先删除文件 再删除目录
fs.rmdir('./js', (err) => {
    if(err) {
        console.log(err)
        return
    }
    console.log('目录删除成功')
})

fs.unlink() 删除文件

fs.unlink('./css/theme.css', (err) => {
    if(err) {
        console.log(err)
        return
    }
    console.log('文件删除成功')
})

fs.createReadStream() 读取文件流

方法的第二个参数可以传入配置项

  • encodeing 返回的编码格式,设置为utf8以后,就不会以流的形式返回
  • flags 文件操作符,用什么模式打开文件,有r,w,a,r+,w+等等
  • mode 文件的权限 最大权限777
var str = ''
var count = 0

var readStream = fs.createReadStream('../txt/index.txt', {encoding:'utf8'})

readStream.on('data', (data) => {
    str += data
    count ++
})

readStream.on('end', () => {
    console.log('文件读取成功')
    console.log(count)
})

readStream.on('error', (err) => {
    console.log(err)
})

fs.createWriteStream() 写入文件流

var str = ''
for(let i = 0; i < 2000; i++) {
    str += '你好啊,nodejs!\n'
}
var writeStream = fs.createWriteStream('../txt/index1.txt', {
    flags: 'a'
})

writeStream.write(str)

writeStream.end()

writeStream.on("finish", () => {
    console.log('文件流写入成功')
})

writeStream.on('error', (err) => {
    console.log(err)
})

fs.pipe() 管道流

var readStream = fs.createReadStream('../txt/index.txt', {encoding:'utf8'})

var writeStream = fs.createWriteStream('../txt/index1.txt', {
    flags: 'w'
})

readStream.pipe(writeStream)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值