fs模块

fs模块

  • 文件操作格式

    • 同步操作格式
    /*
    	let fs = require("fs");  引入系统模块
    	//打开文件
    	let fd = fs.openSync("要打开的文件路径","a")
    	 r: 只读
    	w: 覆盖写  如果文件不存在,则自动创建.
    	a: 追加写  如果文件不存在,则自动创建.
    
    	//写入
    	fs.writeSync(fd,"写的内容","设置编码格式"); 
    */
    
    //同步写入
    let fs=require('fs');
    let fd=fs.openSync('a.txt','a')
    fs.writeSync(fd,"这是写入的内容1111","utf8");
    
    • 异步操作格式
    	/*异步操作格式:
    		let fs = require("fs");
    		r: 只读
    		 w: 覆盖写  如果文件不存在,则自动创建.
    		 a: 追加写  如果文件不存在,则自动创建.
    		fs.open("要打开的文件","a",(err,fd)=>{
     			fs.write(fd,"写入内容",(err)=>{
         			//err写入成功或者失败提示 
     			})
    		})	*/
    	let fs=require('fs');
    	//打开文件
    	fs.open('b.txt','a',(err,fd)=>{
    	fs.write(fd,'我应该写点啥呢',(err)=>{
        	if(!err){
            	console.log("写入成功");
        	}else{
            	console.log("写入失败");
        		}
    		})
    	})
    + 简单操作格式
    ```js
    //fs.writeFile(file,data[options],callback)
    //file 打开的文件
    //data:写入的内容
    //[options]  简单地设置  设置flag:'a'  设置编码格式  encoding:'utf8';
    // r:只读状态
    //w:覆盖写
    //a:追加写
    //callback:(err)  err:返回错误提示信息
    let fs=require('fs');
    fs.writeFile('c.txt','你干哈,你干哈,你到底在干啥',{flag:'a',encoding:'utf8'},(err)=>{
        if(!err){
            console.log("写入成功");
        }else{
            console.log("写入失败");
        }
    })
    
    • 流式操作格式
    //流式操作格式
    /*
    	//加载fs模块
    	let fs=require('fs');
    	fs.createWriteStream(file,[option])
    	file:打开一个可写的文件
     	option:设置{flags:'a'}
    	//创建一个可写的流
    
     	let ws=fs.createWriteStream('打开一个可写的文件',{flags:a})
    	ws.write('写入内容');
    	ws.end() //写完之后关闭
    */
    let fs=require('fs');
    let ws=fs.createWriteStream('d.txt',{flags:'a'});
    ws.write('我要减肥a');
    ws.write('我要变瘦');
    ws.write('我要瘦到90斤');
    ws.write('我必须减肥');
    ws.write('我要少吃点');
    
  • 可读文件和可写文件

    //文件读取
    let fs=require('fs');
    fs.readFile('1.jpg',(err,data)=>{
    	if(!err){
    	//如果没有错误一定会走这儿
    		fs.writeFile('2.jpg',data,(err)=>{
           	 	if(!err){
                	console.log('成功')
             	}else{
                 	console.log('失败');
             	}
        	})
     	}
    })
    
  • 可读流和可写流的格式

    	//流类似于你再下载东西的时候 
    	//如果文件很大  就会一点一点的下载 差不多相当于那个进度条
    	let fs=require('fs');
    	//创建一个可以读的流
    	let rs=fs.crearReadStream('可以读的文件')//创建可以写的流
    	let ws=fs.createWriteStream('可以写的流的文件');
    	//如果要用到流写入文件,必须要绑定一个事件,通过事件触发流写入
    	//on是一个方法
    	rs.on('data',(data)=>{
    		ws.write(data);//绑定一个事件  data事件    触发了事件 可以写入内容
    	})
    	rs.on('end',()=>{
    		ws.end();//关闭
    	});
    	
    
  • 文件的读取

    	//fs.readdir(path,[options],callback)
    	//path:要读取的文件
    	//[options]:设置(状态或者编码格式,一般不会设置,默认)
    	//callback:
    	//(err,files):err:返回错误信息
    	//files:返回文件信息
    	
    	let fs=require('fs'); //引入核心模块
    	fs.readdir('test',(err,files)=>{
    		console.log(err);
    		console.log(files);
    	})
    
  • 文件和目录的区分

    /*fs.stat(path,callback)
    path:读取文件路径
    callback(err,stats)
    err:返回错误信息
    stats:读取文件状态
    stats.isFile()  //是否是一个文件
    stats.isDirectort()  //是否是一个目录(文件夹)
    
    文件不存在不会自动创建
    */
    let fs=require('fs');
    fs.stat('txt',(err,status)=>{
        console.log(err);//null
        console.log(status); //Stats {dev: 1710438242, mode: 33206, nlink: 1, uid: 0, gid: 0, …}
        console.log(status.isFile());//true
        console.log(status.isDirectory())//false
    })
    
    
  • 删除操作

    • 文件删除
      //fs.unlink只能删除文件  不能删除目录(文件夹)
      let fs=require('fs');
      fs.unlink('d.txt',(err)=>{
      	 if(!err){
      			 console.log('删除成功')
      	}else{
      			console.log('删除失败')
      	}
      })
      
    • 目录删除(文件夹删除)
      //fs.rmdir不能删除文件  只能删除空目录(空的文件夹)  
      //如果文件夹里有东西  不能删除
      let fs=require('fs');
      fs.rmdir('text',(err)=>{
      	if(!err){
      		console.log('删除成功')
      	}else{
      		console.log('删除失败')
      	}
      })
      
  • 重命名(覆盖或者剪切)

    • fs.rename(oldPath,newPath,callback)
      oldPath:旧的文件路径
      newPath:新的文件路径
      callback:(err) 返回错误的信息
    • 覆盖
    //fs.rename  重命名  将1.txt重命名为a.txt
    let fs=require('fs');
    fs.rename('aa/1.txt','aa/a.txt',(err)=>{
    	 if(!err){
         	console.log('修改成功');
     	}else{
        	console.log('修改失败')
    	 }
    })
    
    • 剪切
    //剪切  将a文件夹中的1.txt剪切到b文件夹中去
    fs.rename('aa/a/1.txt','aa/b/1.txt',(err)=>{
    	if(!err){
        	console.log('修改成功');
    	}else{
        	console.log('修改失败')
        }
    })
    
  • 创建目录

    • fs.mkdir(path[,option],callback)
      path:文件路径地址
      [option] :设置 {recursive:true}递归创建
      callback:(err) 返回错误的信息

    • 只能一层一层的创建

    fs.mkdir('bb/cc/dd',(err)=>{
    	if(!err){
        	console.log('创建成功');
    	}else{
        	console.log('创建失败')
    	}
    })
    
    • 递归创建 可以一下创建多层
    	//fs.mkdir加上{recursive:true}参数后  可以一下创建多层
    	fs.mkdir('mm/nn/yy/ff',{recursive:true},(err)=>{
    		if(!err){
        		console.log('创建成功');
    		}else{
        		console.log('创建失败')
    		}
    	})
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值