gpt4 book ai didi

binaryfiles - WinJS中的文件到字节数组

转载 作者:行者123 更新时间:2023-12-04 03:02:06 25 4
gpt4 key购买 nike

我正在用 JavaScript 修补一些 Windows 应用商店开发,但我似乎被困在如何从二进制文件中获取字节数组。我在网上找到了几个例子,但它们似乎都只读取文本,而我的文件是图像。我打开文件是这样的:

Windows.Storage.FileIO.readBufferAsync(photos[currentIndex]).done(function (buffer) {

var dataReader = Windows.Storage.Streams.DataReader.fromBuffer(buffer);
var fileContent = dataReader.readString(buffer.length);
dataReader.close();

// do something with fileContent

});

哪里 photos[currentIndex]是一个文件(从 getFilesAsync() 加载)。当然,这种情况下的错误是 readString二进制数据失败。它无法将“字符”映射到字符串中。我也试过这个:
Windows.Storage.FileIO.readBufferAsync(photos[currentIndex]).done(function (buffer) {

var bytes = [];
var dataReader = Windows.Storage.Streams.DataReader.fromBuffer(buffer);
dataReader.readBytes(bytes);
dataReader.close();

// do something with bytes

});

但是 bytes是空的,所以我认为我错误地使用了它。我想我只是在这里忽略了一些简单的事情,但由于某种原因,我似乎无法找到将二进制文件读入字节数组的正确方法。有人可以提供第二组眼睛来帮助吗?

最佳答案

在发布问题后几乎立即弄清楚了,但我想我会把答案留在这里给后代......

我需要在第二个示例中以不同的方式声明数组:

Windows.Storage.FileIO.readBufferAsync(photos[currentIndex]).done(function (buffer) {

var bytes = new Uint8Array(buffer.length);
var dataReader = Windows.Storage.Streams.DataReader.fromBuffer(buffer);
dataReader.readBytes(bytes);
dataReader.close();

// do something with bytes

});

我的 JavaScript 不太符合标准,所以我想我不明白数组声明应该如何工作。 (当我在浏览器中执行 vanilla JavaScript 时,我总是像我最初所做的那样声明空数组并附加到它们。)但这确实有效。

关于binaryfiles - WinJS中的文件到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14004190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com