File System

node is a server language, its purpose is to manipulate the server (computer host)

File synchronous writing
Before using the fs module, you need to introduce 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)

File asynchronous writing

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)
        }
    })
})

Synchronization: order burger "make burger" make good take away" continue to order burger
Asynchronous: order burger "wait by the side" the next person continues to order burger "burger is ready to ask you to receive it

File stream writing: like a faucet, you can turn it on when you want water, and close it when you don’t need it. Unscrew at any time, close at any time. Control the writing and writing of files at any time.

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('通道关闭');
})

Read and write image files

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('读取数据')

Read and write streams through pipes

let fs = require('fs')

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

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

Delete Files:

let fs = require("fs");

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

Read all files in the directory

let fs = require("fs");

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

Create folder

let fs = require("fs");

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

Create folder

let fs = require("fs");

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

Delete folder

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')

Guess you like

Origin blog.csdn.net/sinat_33940108/article/details/112575880
Recommended