我在写一个JavaScript的Windows应用商店应用程序。我的要求是读取本地可用的文件,并获取arraybuffer或Uint8array作为响应。转换IBuffer缓冲区阵列
我尝试使用“Windows.Storage.FileIO.readBufferAsync(文件)”,但这是给我一个IBuffer对象。
- 是否有API读取文件,并给我阵列缓冲区?
- 我如何将“IBuffer”转换为“arraybuffer”?
由于提前
我在写一个JavaScript的Windows应用商店应用程序。我的要求是读取本地可用的文件,并获取arraybuffer或Uint8array作为响应。转换IBuffer缓冲区阵列
我尝试使用“Windows.Storage.FileIO.readBufferAsync(文件)”,但这是给我一个IBuffer对象。
由于提前
可以使用DataReader,例如:
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(new Windows.Foundation.Uri("ms-appx:///Assets/textfile.txt")).then(
function (myFile) {
Windows.Storage.FileIO.readBufferAsync(myFile).done(
function (buffer) {
var myArray = new Uint8Array(buffer.length);
var dataReader = Windows.Storage.Streams.DataReader.fromBuffer(buffer);
dataReader.readBytes(myArray)
dataReader.close();
}
);
}
);
本文看来这个API混乱的一个很好的总结:
http://kraigbrockschmidt.com/blog/?p=554
我意思是“混淆”,即不清楚类/方法(即DataWriter/D ataReader)访问IBuffer/Buffer对象的内容,因为它需要的接口不提供这样做的方法......?
我假设那些处理IBuffer接口的类(例如DataReader/DataWriter)在创建实例(仅返回对象IBuffer接口访问)时知道实现它的真实类。
Windows.Security.Cryptography.CryptographicBuffer.copyToByteArray(IBuffer)
此返回Uint8Array(字节阵列)
由于吉姆。您的解决方案解决了我的问题 – user1613338
不用客气...请问您是否将问题标记为已接受。点击常见问题解答中的[如何在此提问?](http://stackoverflow.com/faq#link-howtoask)下的“查看更多”链接。 –