エンディアンを指定したバイナリデータの読み書き

あっちのタグはつけません。
世の中には、どうしてかは存じませんが、エンディアンが混在するバイナリ書式のものがございまして、ふとこれをAirで読み書きできんかなと思った次第。"binbig" と "binltl" の二つのテキストボックスを貼り付け、readLocalBinBigFile()などを駆動するボタンも用意。
そのうえで、次に示す関数を用意しました。

function readLocalBinBigFile() {
  document.getElementById('binbig').value = readLocalBinFile("LocalBinBig.dat", "bigEndian");
}

function readLocalBinLtlFile() {
  document.getElementById('binltl').value = readLocalBinFile("LocalBinLtl.dat", "littleEndian");
}

function readLocalBinFile(file, endian) {
  var f = air.File.applicationStorageDirectory.resolvePath(file);
  var st = new air.FileStream();
  try {
    st.open(f,air.FileMode.READ);
  }
  catch(e) {
    alert('Read: Open Error: ' + e);
	return NaN;
  }

  try {
    st.endian = endian;
    var data = st.readInt();
    st.close();
	return data;
  }
  catch(e) {
    alert('Read: Read Error: ' + e);
	st.close();
	return NaN;
  }
}


function writeLocalBinBigFile() {
  writeLocalBinFile("LocalBinBig.dat", "bigEndian", parseInt(document.getElementById('binbig').value));
}

function writeLocalBinLtlFile() {
  writeLocalBinFile("LocalBinLtl.dat", "littleEndian", parseInt(document.getElementById('binltl').value));
}

function writeLocalBinFile(file, endian, value) {
  var f = air.File.applicationStorageDirectory.resolvePath(file);
  var st = new air.FileStream();
  try {
    st.open(f,air.FileMode.WRITE);
  }
  catch(e) {
    alert('Write: Open Error: ' + e);
	return;
  }

  try {
    st.endian = endian;
    st.writeInt(value);
    st.close();
  }
  catch(e) {
    alert('Write: Write Error: ' + e);
	return;
  }

}

意外とできるもんなんだとちょっと感動。