文件系统(File System)

node是一门服务器语言,其目的就是操纵服务器(电脑主机)

文件同步写入
使用fs模块前,需要引入cost fs = require(‘fs’);

let fs = require('fs')

//同步打开文件
let fd = fs.openSync('text.html','w')  //文件名称,w代表写入
console.log(fd);

//写入内容
let str = "王棽,你好!"
fs.writeFileSync(fd,str);

//退出文件
fs.closeSync(fd)

文件异步写入

let fs = require('fs')

fs.open('text2.txt','w',(err,fd)=>{
    
       //打开文件后执行函数
    console.log("文件打开")
    fs.writeFile(fd,'123456778',function(err){
    
     //回调函数
        if(!err){
    
    
            console.log("写入完成!");
                fs.close(fd,()=>{
    
      //关闭后回调函数
                console.log("文件关闭完成")
            	})
        	}else{
    
    
            console.log(err)
        }
    })
})

同步:点汉堡 》制作汉堡 》 制作好拿走 》继续点汉堡
异步:点汉堡 》 旁边等候 》 下一位继续点汉堡 》 汉堡做好叫你领取

文件流写入:像水龙头,想要水就拧开,不需要了就关闭。随时拧开,随时关闭。随时控制文件的写入写出。

let fs = require("fs");

//创建写入流
let ws = fs.createWriteStream('text3.txt');

//监听通道打开
ws.once('open',()=>{
    
     
    console.log("通道打开");
    ws.write('你吃饭了吗1')
    ws.write('你吃饭了吗2')
    ws.write('你吃饭了吗3')
    // 写入结束
    ws.end()
})

//监听通道关闭
ws.once('close',()=>{
    
    
    console.log('通道关闭');
})

读取写入图片文件

let fs = require('fs')

fs.readFile('向下.png',(err,data)=>{
    
      //回调函数两个参数,错误和数据
    if(!err){
    
    
        console.log(data)
        fs.writeFile('向上.png',data,(err)=>{
    
    
            if(!err){
    
    
                console.log('读取写入成功');
            }else{
    
    
                console.log('err',err)
            }
        })
    }else{
    
    
        console.log('err',err)
    }
})
console.log('读取数据')

通过管道实现读取写入流

let fs = require('fs')

let rs = fs.createReadStream('向下.png');
let ws = fs.createReadStream('向中.png');

//创建管道,将读取流通过管道流出
rs.pipe(ws)

删除文件:

let fs = require("fs");

fs.unlink('text1.html',(err)=>{
    
    
	if(err){
    
    
		console.log(err)
	}else{
    
    
		console.log('删除文件成功')
	}
})

读取目录下所有文件

let fs = require("fs");

fs.readdir('./',(err,files)=>{
    
    
	if(err){
    
    
		console.log(err)
	}else{
    
    
		console.log(files)
	}
})

创建文件夹

let fs = require("fs");

fs.mkdir('./img',(err)=>{
    
    
	if(err){
    
    
		console.log(err)
	}else{
    
    
		console.log('创建成功')
	}
})

创建文件夹

let fs = require("fs");

fs.mkdir('./img',(err)=>{
    
    
	if(err){
    
    
		console.log(err)
	}else{
    
    
		console.log('创建成功')
	}
})

删除文件夹

let fs = require("fs");

fs.rmdir('./img',(err)=>{
    
      //只能删除空目录
	if(err){
    
    
		console.log(err)
	}else{
    
    
		console.log('文件夹删除成功')
	}
})
let fs = require("fs");

function delDir(dirPath){
    
     //封装函数,可删除空或非空目录
	var filesArr = fs.readdirSync(dirPath);  //定义一个数组拿到文件路径
	for(var i in filesArr){
    
     //循环删除
		var filePath = dirPath + '/' + filesArr[i];  //拼接路径

		//读取文件信息
		var stat = fs.statSync(filePath);
		//判断是文件还是目录
		if(stat.isFile()){
    
    
			fs.unlink(filePath)
		}else if(stat.isDirectory){
    
    
			//递归调用此函数
			delDir(filePath)
		}
	}

	//删除空目录
	fs.rmdirSync(dirPath)
}

delDir('./img')

猜你喜欢

转载自blog.csdn.net/sinat_33940108/article/details/112575880