Node.js(1)

fs模块

实现与硬盘的交互,例如文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作

写入操作

//异步
fs.writeFile('./test.txt', 'test', (err) => {
  if (err) {
    console.log('写入失败')
  }
  console.log('写入成功')
})

//同步
fs.writeFileSync('./test.txt','test')

//追加写入
fs.appendFile('./test.txt','test2',err=>{
  if (err) {
    console.log('写入失败')
  }
  console.log('写入成功')
})
//追加写入(同步)
fs.appendFileSync('./test.txt','\r\ntest2')

//流式写入(流式写入适合大文件写入或者频繁写入,writeFile适合写入频率较低的场景)
const ws = fs.createWriteStream('./test.txt')
ws.write('test1')
ws.write('test2')
ws.write('test3')
ws.close()

读取操作

const fs = require('fs')
//异步
fs.readFile('./test.txt', (err, data) => {
  if (err) {
    console.log('读取失败')
  }
  console.log(data) //buffer
  console.log(data.toString())
})

//同步
let data = fs.readFileSync('./test.txt')
console.log(data.toString());

//流式读取
//创建读取流对象
const rs = fs.createReadStream('./test.txt')
//绑定data事件
rs.on('data',chunk=>{
  console.log(chunk);
})
//end可选事件
rs.on('end',()=>{
  console.log('读取完成');
})

文件复制

const fs = require('fs')
//方式一 readFile
let data = fs.readFileSync('./test.txt')
fs.writeFileSync('./test-2.txt',data)

//方式二 流式操作(所占资源更少)
const rs = fs.createReadStream('./test.txt')
const ws = fs.createWriteStream('./test.txt-3')

rs.on('data',chunk=>{
  ws.write(chunk)
})

//方式三 读取流读完后交给写入流
rs.pipe(ws)

文件重命名和移动

const fs = require('fs')
//重命名
fs.rename('./test.txt', './test2.txt', (err) => {
  if (err) {
    console.log('操作失败')
    return
  }
  console.log('操作成功')
})
//移动
fs.rename('./test.txt', '../node.js', (err) => {
  if (err) {
    console.log('操作失败')
    return
  }
  console.log('操作成功')
})

文件删除

const fs = require('fs')
//法一
fs.unlink('./test.txt',err=>{
  if(err){
    console.log('删除失败');
    return
  }
  console.log('删除成功');
})
//法二
fs.rm('./test.txt',err=>{
  if(err){
    console.log('删除失败');
    return
  }
  console.log('删除成功');
})

文件夹操作

const fs = require('fs')
//创建文件夹 mk make dir directory
fs.mkdir('./html',err=>{
  if(err){
    console.log('创建失败');
    return;
  }
  console.log('创建成功');
})

//递归创建
fs.mkdir('./a/b/c',{recursive:true},(err,data)=>{
  if(err){
    console.log('创建失败');
    return;
  }
  console.log(data);
})

//读取文件夹
fs.readdir('../一键返回顶部',(err,data)=>{
  if(err){
    console.log('创建失败');
    return;
  }
  console.log(data);
})

//删除文件夹 rm remove
fs.rmdir('./html',err=>{
  if(err){
    console.log('创建失败');
    return;
  }
  console.log('创建成功');
})

//递归删除
fs.rm('./a',{recursive:true},err=>{
  if(err){
    console.log('创建失败');
    return;
  }
  console.log('创建成功');
})

查看文件状态

const fs = require('fs')

//stat方法 status缩写
fs.stat('../水平垂直居中',(err,data)=>{
  if(err){
    console.log('操作失败');
    return
  }
  console.log(data.isFile());
  console.log(data.isDirectory());
})

path模块

const fs = require('fs')
const path = require('path')

//拼接规范的绝对路径
console.log(path.resolve(__dirname,'./test.txt'));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值