【问题标题】:NativeScript: is there a way to retrieve the binary data and process it after being read from file?NativeScript:有没有办法在从文件中读取二进制数据并对其进行处理?
【发布时间】:2017-05-11 20:02:10
【问题描述】:

这个问题与 NativeScript 相关。

我想在从文件读取后处理二进制数据。 我在这里关注了官方文档:

file-system#readingwriting-binary-data-fromto-a-file

有了这个,我可以成功地读取和写入(换句话说:“复制”)二进制文件。我现在要完成的是处理二进制数据(它可以是任何类型的二进制数据,例如图像、数据库等),然后将其保存在文件中。但我不知道如何从 readSync 返回的变量对象中检索原始二进制数据,请查看下面的代码(顺便说一下,目前正在 ios 上测试环境):

var source = sourceFile.readSync(e=> { error = e; });
console.log(typeof source.bytes);
console.log(typeof source.length);
console.log(source.bytes);
console.log(source.length);

当我执行此代码时,我会在控制台日志中看到这些消息:

CONSOLE LOG file:///app/views/login/login.js:99:12: object
CONSOLE LOG file:///app/views/login/login.js:100:12: number
CONSOLE LOG file:///app/views/login/login.js:101:12: <Pointer: 0x11da02000>
CONSOLE LOG file:///app/views/login/login.js:102:12: 1720728

从这个输出我推测 source.bytes 是一个指针对象,而不是一个数组对象...我的问题是:有没有办法存储数据成数组,可能是 Uint8Array 类型?

【问题讨论】:

  • 您是否创建了读写服务?可以分享一下吗?

标签: javascript nativescript


【解决方案1】:

我终于找到了让它在ios环境下工作的解决方案。源码里写的:

NativeScript: objc!Foundation.d.ts

因此,使用 getBytes() 将数据检索到数组 abject 中。 示例代码:

var arr = new ArrayBuffer(source.length);
source.getBytes(arr);
var uint8arr = new Uint8Array(arr);

【讨论】:

  • 对于Android,你需要做var uint8arr = new Uint8Array(source);,跳过ArrayBuffer。
猜你喜欢
  • 2010-09-24
  • 2018-05-24
  • 2020-12-12
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2020-08-28
  • 2011-05-21
  • 1970-01-01
相关资源
最近更新 更多