node.js - 从二进制文件中的特定行读取数据
问题描述
我意识到这与其他被问到的问题类似,但是在倾注了几天的堆栈溢出和 node.js 文档之后,我决定是时候寻求帮助了。
基本上我需要做的是从二进制文件中读取数据并提取信息然后转换为纯文本。
我一直在尝试使用缓冲区,但没有看到任何进展。
如果有人能让我达到可以阅读整个文件并解码为纯文本的程度,我相信我可以从那里得到它。
const fs = require('fs');
let buf = fs.readFileSync(__dirname + '/sd_bl.bin');
let buffer = new Buffer.alloc(Buffer.byteLength(buf));
buffer.write(buf.toString('base64'));
console.log(buffer);
这是我目前拥有的,输出是:
< 缓冲器 41 41 45 43 41 77 51 46 42 67 63 41 41 51 49 44 42 41 55 47 42 77 41 42 41 67 4d 45 42 51 59 48 41 41 45 43 41 7746 41 46 4125 42 41 ... 7950 更多字节>
所以它似乎正确地分配和写入缓冲区,但我不知道下一步应该是什么,只要从中获取纯文本。
解决方案
我在这里相对较新,但这里有一个镜头!我相信您的 console.log 声明可能会误导您。相反,控制台日志记录buffer.toString()
应该足以让您获得文件的人类可读内容。
这是一个例子:
var buffer = fs.readFileSync('yourfile.txt')
console.log(buffer.toString())
目前,您的代码buffer
在读取文件后创建一个新的缓冲区对象 ( ),将旧缓冲区的内容写入其中,然后打印出新的 Buffer 对象本身而不是其字符串表示形式。
有关实际逐行读取文件的更多信息,我会检查另一个所以发布:在 node.js 中一次一行读取文件?
推荐阅读
- reactjs - Redux 状态显示为 Map,无法访问 combineReducers 属性
- php - Docker 服务 php-fpm 容器之间的 cURL 导致“连接被拒绝”
- c# - 如何从 RichTextBox C# WPF 中获取一个字符单击一个按钮并更改它的颜色
- amazon-web-services - 使用 Ansible 创建 AWS 机密
- amazon-web-services - sam local invoke 不适用于符号链接
- ios - 如何使用 UICollectionViewCompositionalLayout 实现全角标题,但在部分中仍有项目的内容插入?
- python - 升级到 django 3.1 后无法连接到测试数据库
- visual-studio - android studio 和 unity 会在带有 mx230 gpu 的 Ryzen 7 3700u 中顺利运行吗?或者我应该选择英特尔?
- mysql - 如何防止由于mysql中的数据库事务而插入重复条目?
- dictionary - 如何更新以列表为值的地图