读取bson文件——JavaScript读取/解析bson文件并存至txt文件

由于最近项目需要,不得不读取 .bson 文件,网上都是读取 json 的,关于 bson 的几乎没有!!折腾了两天,最终整理出个路子,如下:

首先是通过 JavaScript 读取的,为啥要用这个语言,不知道不清楚不了解!!!好吧,实际上是 libbson(C++)没搞出来,一没文档,二没帖子,看源码也没看出个所以然;Python 就更别说了(┭┮﹏┭┮被逼地简直头皮发麻***)

要说明的是,我是需要读取 .bson 文件中的特定内容,也就是指定元素的值。 libbson 提供了掰着手指头都能数得过来的几个例子,有一个是可以读取bson文件然后输出到命令行的,是一股脑地输出,不想要的也输出,而且没有层次,长下面这鬼样纸:

所以最终还是用 JS 实现的。

JS无需编译,直接运行 .js 文件即可。这里是通过 Node.js (一个方便使用 JavaScript 的环境)实现的,使用方法如下:

node bson_gao.js gao.bson 789.txt

node 就是用 Node.js 启动,bson_gao.js 是我编写的读取 bson 文件的脚本,gao.bson 是要读取的文件,123.txt 是最终要存储数据的文件。

运行这个指令后会出现一堆莫名其妙的文件,本人不是专业搞 JS 的,所以也不清楚运作机理,不过这些都不重要。重要的是,程序会读取 gao.bson 文件,然后把需要读取的数据存入 123.txt。

运行代码前,当然要先装上 Node.js,并且在里面下载好 fs 和 bson 模块,这个网上搜一下有很多资料的。

 

bson_gao.js 代码如下:

 1 const fs = require("fs");
 2 const bson = require('bson');
 3 
 4 var fileName = process.argv.splice(2);    //读取命令行输入参数,从第3个开始
 5 console.log("读取内容为 : ");
 6 fs.readFile(fileName[0].toString(),
 7     function(err,data){
 8        if(err){
 9            console.error(err);
10        }
11        else{
12            var mappoints = bson.deserialize(data);
13            let mapPointsCount = 0;
14 
15            for(let pointIndex in mappoints){
16                let pos = getPosition(mappoints[pointIndex][
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值