Nodejs: 读写二进制文件
最简单的方法是用fs的writeFileSync和readFileSync如下所示:
var fs = require('fs');
var crypto = require('crypto');//产生32位随机字节
var wbuf = crypto.randomBytes(32);
console.log(wbuf);try {//把32位随机字节写到文件"binaryfile"fs.writeFileSync("binaryfile", wbuf);//读取文件"binaryfile"var rbuf = fs.readFileSync("binaryfile");console.log(rbuf);
} catch(err) {console.log(err);
}
从输出可以看到,随机产生的32位字节被完整的写入文件又读取回来。
另外还有一种用字节流的方法:
var fs = require('fs');function writeBinary(filename, buf, callback) {var wstream = fs.createWriteStream(filename);wstream.write(buf);wstream.end();wstream.on('finish', function() {callback();});wstream.on('error', function(err) {callback(err);});}function readBinary(filename, callback) {var rstream = fs.createReadStream(filename);var chunks = [];var size = 0;rstream.on('readable', function() {var chunk = rstream.read();if (chunk != null) {chunks.push(chunk);size += chunk.length;}});rstream.on('end', function() {callback(null, Buffer.concat(chunks, size));});rstream.on('error', function(err) {callback(err, null);});}var crypto = require('crypto');
var wbuf = crypto.randomBytes(32);
console.log(wbuf);writeBinary("binaryfile", wbuf, function(err) {if (err) {console.log(err);return;}readBinary("binaryfile", function(err, rbuf) {if (err) {console.log(err);} else {console.log(rbuf);}});});
上面两种方法执行效果是一样的,暂时没有发现有什么差别。
Nodejs: 读写二进制文件相关推荐
- R语言读写二进制文件:WriteBin()、readBin()
R语言读写二进制文件:WriteBin().readBin() 目录 R语言读写二进制文件:WriteBin().readBin() WriteBin()和readBin()语法
- python读写二进制文件(读写字节数据)
python读写二进制文件(读写字节数据) 你想读写二进制文件,比如图片,声音文件等就是常见的二进制文件. 使用模式为 rb 或 wb 的 open() 函数来读取或写入二进制数据.比如: # Rea ...
- 一种C#读写二进制文件的通用方法
在日常的工作中,我们经常需要进行一些二进制文件或协议的读写操作,用C#解析二进制文件常常是一件比较麻烦且容易出错的工作,本文介绍了一种在C#中实现快速读写二进制文件通用的方法. 以一个解析Mp3 ID ...
- python读写二进制文件的方法
本文实例讲述了python读写二进制文件的方法.分享给大家供大家参考.具体如下: 初学python,现在要读一个二进制文件,查找doc只发现 file提供了一个read和write函数,而且读写的都是 ...
- QT学习:读写二进制文件
使用QDataStream读写二进制文件. 具体用法见如下代码: (1)头文件"mainwindow.h"的具体代码如下: #include <QMainWindow> ...
- Java读写二进制文件
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io ...
- C++实现对象序列化和反序列化(读写二进制文件)操作
相关函数介绍 在我们的C语言中读写二进制文件一般使用的fread.fwrite全局函数,当然也可以使用更底层的read和write函数.在我们的C++中 通过ofstream 和 ifstream 对 ...
- Python+pickle读写二进制文件小案例
对于二进制文件,不能使用记事本或其他文本编辑软件进行正常读写,也无法通过Python的文件对象直接读取和理解二进制文件的内容.必须正确理解二进制文件结构和序列化规则,才能准确地理解二进制文件内容并且设 ...
- 3-6 读写二进制文件
3-4 读写二进制文件 u本节学习目标:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...
最新文章
- 深入浅出统计学(十一)总体和样本的估计
- 40个最好的Tumblr主题
- 使用Cross-Page Postback(跨页面提交)在页面间传递数据
- 【Vue 3.0 新特性(一)】源码的组织方式
- Oracle 空间查询, 数据类型为 sdo_geometry
- leetcode刷题:1.无重复字符的最长字串
- HDU 1160 FatMouse#39;s Speed DP题解
- List与数组的相互转换
- JDK中ThreadDump诊断Java代码中的线程死锁问题
- FISCO BCOS 控制台 call调用已经部署的合约 不存在does not exist
- Mac如何解决vi vim光标移动慢问题
- 实时操作系统与通用操作系统的一些比较
- 传教士 野人 过河问题
- VB.net 播放 WAV音乐
- 新冠死亡率居高不下,为什么偏偏是意大利?
- 电脑如何分区重装系统
- java arraylist.add(),Java ArrayList add()方法与示例
- Pinyin4j的基本用法
- Linux-软件安装管理
- 算法竞赛入门习题2-3倒三角
热门文章
- JavaScript闭包之经典案例
- 普陀区鼓励企业科创政策包(普陀科创十条)
- 计算机软件工程一等奖,兰州大学本科生荣获2016年中国大学生计算机设计大赛一等奖...
- ThinkPHP 路由使用
- android ListView 的多选模式
- 手把手教你理解圣杯布局和双飞翼布局
- Ubuntu ens33网卡无ip
- 计算机文化基础在线作业答案,2016春华东石油《计算机文化基础》第一阶段在线作业.doc...
- ESP8266 Flash的分布及其读写操作
- 水质评价---2综合水质标识指数法