nodejs之fs操作文件、读取图片

参考使用:http://www.runoob.com/nodejs/nodejs-fs.html

Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。

异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。

=============读取图片显示在浏览器上==========

**********app.js**********

var express = require('express');
var app = express();//创建express实例
var routes=require('./routes/routes.js');//吧路由引入;  ./ 代表项目的当前总目录 /Users/wofu/Desktop/node
routes.router(app);//调用路由
var server = app.listen(8081, function () {
  var host = server.address().address
  var port = server.address().port
  console.log(__dirname);//这里的目录就是/Users/wofu/Desktop/node,其中node文件夹我是直接放在了桌面
console.log(host);//主机地址
console.log(port);//端口号
  console.log("应用实例,访问地址为 http://%s:%s", host, port)

})

************routes.js*************

var router = function(app){
  var fs = require("fs");


  app.get('/one', function (req, res) {
    console.log("第一个网页");
  //第一个参数是下载的资源的url,第二个参数binary(以二进制输出到浏览器,浏览器能自动解析),如果是图片必须设置成binary,否则图片打不开
  // 如果是hex(以16进制输出到浏览器,在浏览器显示的是16进制字符串)
  //第三个参数是回调函数,data是读取的数据
    fs.readFile("/Users/wofu/Desktop/node/temp/de2ef6a08136df717e1a74b65ba3ec2c","binary",function(err,data){

  if(err){
    console.log(err);
    return;
  }else {
  res.write(data,"binary");
  res.end("");
  }
  });
  });
};

exports.router = router;


========stream流读取文本文件===========

var data = '';

// 创建可读流
var readerStream = fs.createReadStream('/Users/wofu/Desktop/node/temp/testnodejs.txt');

// 设置编码为 utf8。
readerStream.setEncoding('UTF8');

// 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {
   data += chunk;
});

readerStream.on('end',function(){
   console.log(data);

   res.end(data);//发送给app
});

readerStream.on('error', function(err){
   console.log(err.stack);
});

===========向文本文件中写内容===========


// 创建可读流

var data = '菜鸟教程官网地址:www.runoob.com';

// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('/Users/wofu/Desktop/node/temp/testnodejs.txt');

// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');

// 标记文件末尾
writerStream.end();

// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
    console.log("写入完成。");
    res.write(data);//返回给app
res.end();
});

writerStream.on('error', function(err){
   console.log(err.stack);
});

==================判断文件存在、读取、写入==============

参考:https://blog.csdn.net/u010403387/article/details/46467867



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值