Ответ Cheeso работает и выдает массив чисел. Альтернативой является замена строки 5 на
a.push(ts.Read(1));
Это дает массив из отдельных символов вместо массива чисел. В моей системе (Windows 7 64-bit) запись байтов по одному в цикле слишком медленная, хотя внешне эквивалентная функция чтения cheeso работает достаточно быстро. Запись массива в один Write
дает запятые, разделяющие байты. Но байты, представленные массивом из отдельных символов, могут быть записаны функцией
function WriteByte (File, Byte) {
var Text = "";
for (I = 0; I < Byte.length; I ++) Text += Byte [I];
File.Write (Text);
}
(в котором File
открыт для ASCII), что является приемлемо быстрым в моем приложении. (В моей системе есть ошибка в JavaScript, что, если в функцию передана строка, содержащая нулевые символы, в функции свойство .length
строки является правильным, но каждый символ после первого нулевого символа равен null
( в отличие от нулевого символа). Однако в приведенной здесь функции нулевые символы в Text
обрабатываются правильно и быстро.)
Другое преимущество представления байтов символами вместо чисел состоит в том, что каждый байт представлен двумя байтами вместо четырех. Конечно, недостатком является то, что для многих операций с байтами требуется метод .charCodeAt (0)
.