Python バイナリモードでファイルを読み込む、およびEOFの検出方法 - Why it doesn't work?
の作業は一段落ついたのですが、JavaScriptでバイナリファイルを直接読み込めば、作業の手順を減らせるなと思いつき、掲題の作業に取りかかります。
ポイントは以下の通りです。
- テキストファイルの読み込みと同様に、Web APIのFileReaderオブジェクトを使用します
- バイナリデータの読み込みには、readAsArrayBufferメソッドを使用してコンテンツをメモリに読み取ります
- result プロパティにはファイル/ブロブ データがArrayBuffer オブジェクトとしてして格納されます
以下、サンプルコード。
function loadBinaryFiles(e) { var files = e.dataTransfer.files; if (files.length) { for (var i = 0, file; file = files[i]; i++) { var reader = new FileReader(); reader.onload = function(e) { // ここでreader.resultプロパティを処理する } reader.onerror = function(e) { console.error('reading failed'); }; reader.readAsArrayBuffer(file); } } }
バイナリデータの扱いについては、また別途。