zoukankan      html  css  js  c++  java
  • NodeJs操作文件-写入、修改、删除、追加、读取文件内容、判断文件是否存在

    NodeJs操作file常用方法:

    var fs = require('fs');
    
    //写入文件
    fs.writeFile("test.txt", "hello world! maxinhai is good coder!", function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    });
    
    //向文件追加内容
    fs.appendFile("test.txt", "人间失格", 'utf-8', function(err) {
    	if(err) {
    		console.log(err);
    		return false;
    	}
    	console.log('写入成功!!!');
    });
    
    //读取文件
    fs.readFile("test.txt", function(err, data) {
    	if(err) {
    		console.log(err);
    		return false;
    	}
    	console.log(data.toString());
    });
    
    //unlink删除文件  
    fs.unlink('test.txt',function(err) {
        if(err){
            console.log(err);
            return false;
        }
        console.log('删除文件成功');
    });
    
    //判断文件/目录是否存在
    fs.access('test.txt',(err)=>{
        console.log(err ?  '目录/文件不存在': '文件存在,可以进行读写');
    });
    

      

    修改文件指定内容:

    编写这段代码的背景是我要定时同步数据,需要记录上次同步数据到那个时间点了,所以文件里只存了时间;

    //获取时间
    function getDateTime() {
    	var date = new Date();
    	var year = date.getFullYear();
    	var month = date.getMonth()+1;
    	var day = date.getDate();
    	var hour = date.getHours();
    	var minute = date.getMinutes();
    	var second = date.getSeconds();
    	var dateTime = year+'年'+month+'月'+day+'日 '+hour+':'+minute+':'+second;
    	return dateTime;
    }
    
    //修改文件内容
    let dateTime = getDateTime();
    let date = `${dateTime}`;
    console.log('startTime', date);
    //1.先写入时间
    fs.writeFile('date.txt', date, (err) => {
      if (err) throw err;
      console.log('写入时间',dateTime);
    });
    
    function changeDateTime() {
    	//2.再修改时间
    	dateTime = getDateTime();
    	date = `${dateTime}`
    	fs.writeFile('date.txt', date, (err) => {
    	  if (err) throw err;
    	  console.log('圆满解决颜色替换', dateTime);
    	});
    	
    	//读取文件
    	fs.readFile("date.txt", function(err, data) {
    		if(err) {
    			console.log(err);
    			return false;
    		}
    		console.log('修改后时间',data.toString());
    	});
    }
    
    //模拟隔一段时间再去写入
    setTimeout(changeDateTime, 1500);
    

    上面代码并不能达到修改指定内容的功能,请看下面:

    //修改文件内容
    let dateTime = getDateTime();
    let date = `{date:${dateTime}, msg:hello world}`;
    console.log('startTime', date);
    //1.先写入时间
    fs.writeFile('date.txt', date, (err) => {
      if (err) throw err;
      console.log('写入时间',dateTime);
    });
    
    function changeDateTime() {
    	//2.再修改时间
    	dateTime = getDateTime();
    	date = `{date:${dateTime}, msg:hello javaScript}`
    	fs.writeFile('date.txt', date, (err) => {
    	  if (err) throw err;
    	  console.log('圆满解决颜色替换', dateTime);
    	});
    	
    	//读取文件
    	fs.readFile("date.txt", function(err, data) {
    		if(err) {
    			console.log(err);
    			return false;
    		}
    		console.log('修改后时间',data.toString());
    	});
    }
    
    //模拟隔一段时间再去写入
    setTimeout(changeDateTime, 1500);
    

    这种方式无疑是很有局限性的,修改时想要保证文件内容不丢失,创建对象时必须填写全部数据,比较适合文件内容比较小的情况;

  • 相关阅读:
    LayUI图片上传
    LayUI预设的正则
    SpringMVC
    避免IE执行AJAX时,返回JSON出现下载文件
    linux服务器无法显示tomcat详细错误信息
    User.java 实体类 带 数据库字段模板
    文字和图片放一起, 文字下沉的处理方法
    后台数据download成excel的方法(controller/action)
    table导出到excel的两种方法
    什么是脏读,不可重复读,幻读
  • 原文地址:https://www.cnblogs.com/mxh-java/p/11598742.html
Copyright © 2011-2022 走看看