`

nodejs的读写(输入和输出流)

阅读更多
----------------------读取
var fs = require("fs");

var data='';
//创建可读流
var readerStream = fs.createReadStream('input.txt');
//设置编码utf8
readerStream.setEncoding('UTF8');
//处理流事件--》data ,end ,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("程序执行完毕");

------------------------------------输出

var fs = require("fs");
var data = '菜鸟教程官网地址:www.runoob.com';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');

// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');
// 标记文件末尾
writerStream.end();

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

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

console.log("程序执行完毕");

--------------------------管道流


var fs = require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');

// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);

console.log("程序执行完毕");


链式是通过连接输出流到另外一个流并创建多个对个流操作链的机制。链式流一般用于管道操作。
接下来我们就是用管道和链式来压缩和解压文件。
创建 compress.js 文件, 代码如下:

var fs = require("fs");
var zlib = require('zlib');

// 压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('input.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));
 
console.log("文件压缩完成。");
分享到:
评论

相关推荐

    read-write-csv-nodejs:读取和写入CSV数据的代码

    读写csv-nodejs 用于读取和写入CSV数据的代码。 这包含有关如何在Node中的文件中读取和写入CSV数据的示例代码。 csv输入文件存储为input.csv ,并且代码知道所需的数据格式。 该代码会将处理后的数据输出到另一个名...

    实现nodejs与java的socket相互通信

    3. 获取Socket的输入和输出流,用于读写数据: ```java OutputStream outToServer = client.getOutputStream(); InputStream inFromServer = client.getInputStream(); ``` 4. 发送数据到服务器并接收回应: ```java...

    nodejs基础入门及配置方法

    - `process.stdin` 和 `process.stdout` 用于标准输入和输出。 - `process.on('exit', function() {})` 监听进程退出事件。 #### Request 模块 1. **HTTP 请求:** - `request` 模块简化了 HTTP 请求处理过程。...

    黑马web 39期 nodejs笔记

    - `console`: 提供了命令行环境的标准输入/输出功能。 - **全局函数**: - **定时器函数**: - `setTimeout()` - `clearTimeout()` - `setInterval()` - `clearInterval()` - `require()`: 用于加载模块。 - **...

    深入nodejs中流(stream)的理解|angluo-javascript-183244.pdf

    流允许数据在不同的输入源和输出目的地之间进行传输,而无需将全部数据加载到内存中,这对于处理大文件和网络通信尤为重要。 Node.js中的流实现了EventEmitter接口,具备了事件驱动的特性。这意味着,流可以通过...

    nodejs手册中文版

    - **`process.stdin`**: 访问标准输入流。 - **`process.argv`**: 包含命令行参数的数组。 - **`process.env`**: 包含当前环境变量的对象。 - **`process.execPath`**: 调用 Node.js 的可执行文件的路径。 - **...

    利用NodeJS的子进程(child_process)调用系统命令的方法分享

    child_process模块的主要API包括标准输入、标准输出和标准错误输出的接口。这些接口分别对应于子进程的stdin、stdout和stderr,它们可以用来读取或写入数据。具体来说,可以通过child.stdin向子进程发送输入信息,...

    wiringpi-gpio-wrapper:一个封装了wiringPi 的GPIO 实用程序的nodejs 模块。 该模块提供基本的读写导出功能

    通过 `wiringpi-gpio-wrapper`,开发者可以轻松地实现对这些硬件的读取和写入,进行数字输入/输出操作。这个模块的核心功能包括: 1. **读取 GPIO 状态**:使用这个模块,你可以读取 GPIO 引脚当前的电平状态(高或...

    nodejs教程javascript标准参考教程.docx

    使用 `process.argv` 数组可以获取命令行参数,而 `process.stdin` 和 `process.stdout` 可以用来读写标准输入输出。 总之,Node.js 提供了一套高效的工具,让开发者可以用JavaScript构建高性能的网络服务和工具。...

    NodeJS 面试题及解答 (2023) – 高级.docx

    - **双工流 (`Duplex Stream`)**: 同时具备读写功能的流,例如 TCP 套接字。 - **转换流 (`Transform Stream`)**: 是一种特殊的双工流,它在数据传输过程中对数据进行转换,如加密或解压。 **2. 示例** - **可读流...

    详解nodejs异步I/O和事件循环

    Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,它的设计采用了事件驱动模型,这意味着它在处理输入输出(I/O)操作时能够实现非阻塞的异步性能。 在 Node.js 中,JavaScript 代码不是通过传统的多线程...

    hello_nodejs:你好世界 nodejs

    输入`node -v`和`npm -v`,如果返回版本号,那么说明已经安装成功。 接下来,我们要创建“Hello, World!”程序。在命令行中,选择一个合适的目录,然后使用`npm init`命令创建一个新的Node.js项目。这会生成一个`...

    tools-nodejs:与 nodejs 一起使用的一组脚本和模块

    5. **日志管理**:日志记录是调试和监控应用的关键,可能有专门的日志模块来规范化输出和处理日志。 6. **错误处理**:良好的错误处理机制可以提升代码的健壮性,"tools-nodejs"可能包含错误处理模块,确保程序在...

    CLI-Calendar-App:尝试重新创建终端“ cal”命令,该命令在终端环境中显示日历。 该应用程序将使用NodeJS

    3. **读写标准输入/输出**: NodeJS提供了`readline`和`process`模块,用于读取用户输入和向终端输出信息,这是CLI应用的核心功能。 4. **第三方库**: NodeJS的npm仓库拥有大量可用于构建CLI应用的库,例如处理日期...

    nodejs-workshoppers-Solutions-learnyounode

    1. **基础IO**:练习中,你会遇到如何使用`fs`模块进行文件读写,例如“hello world”练习,它教你如何读取并打印标准输入,以及如何将输出写入标准输出。 2. **数据流**:Node.js中的流API是其核心特性之一。在...

    nodejs-learn-code:nodejs学习代码

    安装完成后,你可以通过命令行工具(如 Windows 的 cmd 或 macOS/Linux 的终端)来验证安装是否成功,输入 `node -v` 和 `npm -v` 来查看 Node.js 和 npm(Node.js 包管理器)的版本。 2. **Hello, World!**:在 ...

    node:nodejs测试

    标题 "node:nodejs测试" 暗示我们将探讨Node.js这一JavaScript的后端运行环境。Node.js允许开发者使用JavaScript进行服务器端编程,提供了一种高效、轻量级且可扩展的平台。在这个主题中,我们将深入理解Node.js的...

    rpi-ldr-led-nodejs

    这个项目利用树莓派的GPIO(通用输入输出)引脚来监测光敏电阻(LDR)的光照强度,并根据读取到的值来控制LED灯的亮度或开关状态。以下是对这个项目及其相关知识点的详细解释: 1. **树莓派**: 树莓派是一款小型、...

    ReadMe-Generator:我使用简单的NodeJS应用程序来构建readme.md文件

    3. **命令行工具开发**:了解如何在Node.js中创建可执行的CLI(命令行界面)应用,包括接收命令行参数、处理用户输入、输出结果等。 4. **文件操作**:学习Node.js中的文件读写操作,如何读取模板文件,填充数据,...

Global site tag (gtag.js) - Google Analytics