運行此代碼後:編寫然後從文件讀取回TypeBuffer到/給出了意想不到的效果
var arr = new Uint32Array(16);
for (var i=0; i<16; ++i) arr[i] = i;
fs.writeFileSync("arr",new Uint8Array(arr).buffer);
console.log([].slice.call(new Uint32Array(fs.readFileSync("arr"))));
的預期結果是:
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]
但是,相反,它會產生這樣的輸出:
[ 91, 111, 98, 106, 101, 99, 116, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 93 ]
的arr
文件的hexdump都顯示了這一點:
0000000 5b 6f 62 6a 65 63 74 20 41 72 72 61 79 42 75 66
0000010 66 65 72 5d
爲什麼生產的產量不符合預期產量?
您是如何解決此問題的?你是否觀察過新的「arr」文件的內容?這應該給你一個很大的線索。 – 2014-09-20 03:27:49
此問題未完整指定。你在觀察什麼是「別的東西」?不要期望人們必須運行你的代碼來回答你的問題。有些人只是意識到,本網站上的許多有經驗的海報只是通過閱讀這個問題來回答(請注意,很多高級代表用戶回答「此代碼未經過測試」desclaimers) – slebetman 2014-09-20 03:47:50
@Mike這是一個非常好的編輯,謝謝。 – MaiaVictor 2014-09-20 18:20:04