• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

Nodejs读写文件--直接操作文件代码教程

时间:2015年04月02日 15:32:30    来源:魔法猪系统重装大师官网    人气:9951

nodejs对文件的读写还是相当灵活的,可以根据不同的场景来选择不同的方法。

     一.直接操作文件

     最简单的两个fs.readFile和fs.writeFile

   举例:这个程序的功能是将一个比较大json格式的文件转换成你想自己要格式的文件。

var fs = require('fs');
fs.readFile('./json.json',function(err,data){
    if(err) throw err;

    var jsonObj = JSON.parse(data);
    var space = ' ';
    var newLine = '\n';
    var chunks = [];    
    var length = 0;

    for(var i=0,size=jsonObj.length;i

      它的原理是将文件数据一次性全部读入内存,优点就是接下来都是在内存的操作,速度会很快。但缺点也很明显,就是当文件非常大时,会造成内存溢出。  

       二. 使用文件流

   2.1 读取文件,api相见:fs.createReadSream 和 fs.createWriterStream

       以下代码实现的功能就是通过文件流来实现图片的复制:

var fs = require('fs');
var rOption = {
  flags : 'r',
  encoding : null,
  mode : 0666
}

var wOption = {
  flags: 'a',
  encoding: null,
  mode: 0666   
}

var fileReadStream = fs.createReadStream('./myjpg.jpg',rOption);
var fileWriteStream = fs.createWriteStream('./new_myjpg.jpg',wOption);

fileReadStream.on('data',function(data){
  fileWriteStream.write(data);
    
});

fileReadStream.on('end',function(){
  console.log('readStream end'); 
  fileWriteStream.end();
});

       这里再补充在流中非常有用的一个函数:pipe,它以用来把当前的可读流和另外一个可写流连接起来。可读流中的数据会被自动写入到可写流中。使用起来非常方便,依然实现上例中的功能:      

var fs = require('fs');

var fileReadStream = fs.createReadStream('./myjpg.jpg');
var fileWriteStream = fs.createWriteStream('./new_myjpg.jpg');
fileReadStream.pipe(fileWriteStream);

fileWriteStream.on('close',function(){
  console.log('copy over');  
});

       用这个函数可以轻松地实现一个静态资源服务器:

var http = require("http");
var fs = require("fs"), 
var path = require("path"), 
var url = require("url"); 

var server = http.createServer(function(req, res) {
  var pathname = url.parse(req.url).pathname; 
  console.log(pathname);
  var filepath = path.join("./tmp", "wwwroot", pathname); 
  console.log(filepath);
  var stream = fs.createReadStream(filepath, {flags : "r", encoding : null}); 
  stream.on("error", function() { 
      res.writeHead(404); 
      res.end(); 
  }); 
  stream.pipe(res);
}); 
server.on("error", function(error) { 
  console.log(error); 
}); 
server.listen(8088,function(){
  console.log('server listen on 8088');
});

Nodejs,读写,文件,直接,操作,代码,教程,nodej
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部