zoukankan      html  css  js  c++  java
  • readfile,read,createReadStream函数

    这三个函数使用前都需要引入fs模块(var fs= require(“fs”) )

    readfile:读取文件内容的异步函数,readFile方法是将要读取的文件内容完整读入缓存区,再从该缓存区中读取文件内容

    fs.readFile(filename, [encoding], [callback(err,data)])

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

    示例:

    var fs = require("fs");
    
    // 异步读取
    fs.readFile('input.txt', function (err, data) {
       if (err) {
           return console.error(err);
       }
       console.log("异步读取: " + data.toString());
    });
    
    // 同步读取
    var data = fs.readFileSync('input.txt');
    console.log("同步读取: " + data.toString());
    
    console.log("程序执行完毕。");

    read:read或readSync方法读取文件内容是不断地将文件中的一小块内容读入缓存区,最后从该缓存区中读取文件内容;以字节为单位来写、读

    fs.read(fd, buffer, offset, length, position, callback)

    参数

    参数使用说明如下:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • buffer - 数据写入的缓冲区。

    • offset - 缓冲区写入的写入偏移量。

    • length - 要从文件中读取的字节数。

    • position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。

    • callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。

    示例:

    var fs = require("fs");
    var buf = new Buffer(1024);
    
    console.log("准备打开已存在的文件!");
    fs.open('input.txt', 'r+', function(err, fd) {
       if (err) {
           return console.error(err);
       }
       console.log("文件打开成功!");
       console.log("准备读取文件:");
       fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
          if (err){
             console.log(err);
          }
          console.log(bytes + "  字节被读取");
          
          // 仅输出读取的字节
          if(bytes > 0){
             console.log(buf.slice(0, bytes).toString());
          }
       });
    });

    createReadStream:从流中读取数据,该方法创建一个将文件内容读取为流数据的ReadStream对象

    示例:

    var fs = require("fs");
    var data = '';
    
    // 创建可读流
    var readerStream = fs.createReadStream('input.txt');
    
    // 设置编码为 utf8。
    readerStream.setEncoding('UTF8');
    
    // 处理流事件 --> data, end, and error
    readerStream.on('data', function(chunk) {
       data += chunk;
    });
    
    readerStream.on('end',function(){
       console.log(data);
    });
    
    readerStream.on('error', function(err){
       console.log(err.stack);
    });
    
    console.log("程序执行完毕");
  • 相关阅读:
    SDOI 2009 HH的项链
    SDOI2012 longge的问题
    SDOI 2010 星际竞速
    SDOI2009 晨跑
    SDOI2008 仪仗队
    让我们来看一看C++ 三.表达式与运算符
    如何判断素数
    让我们来看一看C++ 一.对世界说你好
    币种校验的安全问题随笔
    Nodejs代码安全审计之YAPI
  • 原文地址:https://www.cnblogs.com/qiufang/p/8573288.html
Copyright © 2011-2022 走看看