我在寫一個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)下的「查看更多」鏈接。 –